maxvetro:
Nessun problema con il browser , anche xche se l'immagine la carico da un link esterno funziona adesso"
Ma da un link esterno la puoi mettere senza problemi senza pulsanti di caricamento
Questo ne e' un esempio http://ifv.lancerotto.it:82 vedi logo Arduino
Purtroppo il SEARCH di questo forum e' notoriamente penoso ma ti posso assicurare che l'argomento e' stato dibattuto e si parlava di immagine codificata in BASE64
Magari chi ha interagito con quel post si ricorda il nome e lo puo' linkare
la prima immagine ( che risiede sulla SD card ) non viene visualizzata : il suo percorso ( TASTO DESTRO DEL MOUSE - APRI IN UNA NUOVA FINESTRA) è http://rubianahouse.homepc.it:88/logo.jpg
maxvetro:
La domanda ora diventa un altra , non vorrei averVi portato fuori pista ...
tutti per la disponibilità
Visto che la cosa mi interessa e stuzzica ho girovagato un po' ed ho trovato questa affermazione
Il sistema dei LED è abbastanza macchinoso.
In pratica, con una funzione particolare di una libreria, faccio il check di una uscita se è HIGH o LOW, e in base a questo faccio uno strcpy_s di un buffer, che contiene una Stringa infilata dentro il BaBBuino con PROGMEM.
In questa Stringa c'è l'immagine del LED in base64, quindi non c'è nessun file .bmp o .jpg esterno da recuperare, ma è costruito direttamente dentro la memoria del BaBBUino.
In realtà sono 2 stringhe con 2 versioni base64 del LED: quello Rosso, acceso, e quello Grigio, spento.
Purtroppo Babbuino sembra volatilizzato
Affidiamoci ai "Testoni" se possono interpretare e spiegare le affermazioni riportate
Provo a codificare una immagine come stringa e metterla in una pagina per vedere cosa succede
brunol949:
Provo a codificare una immagine come stringa e metterla in una pagina per vedere cosa succede
Codificare una immagine non credo ci voglia molto
Mi invio un messaggio in HTML con allegata l'immagine
Una volta arrivato apro le proprieta' del messaggio e vado a vederlo in originale
In coda mi trovo un codice dichiarato in base64
Chiaramente copiare ed incollare e' semplice
Ci vuole un WebMaster che spieghi come visulizzare in posizione opportuna quel codice
Vediamo se c'e' un lettore pratico di queste cose che ce lo spiega
Ovviamente un grazie anticipato
Non sono un espertone , non conoscevo neanche la codifica in Base64 ma i link sono chiarissimi.
In serata ( ora devo purtroppo uscire ) farò delle prove....
Solo una domandina ( non riesco ad attendere fino a questa sera ) : posso convertire qualunque immagine in Base64 ? o ci sono limiti di grandezza e formato ?
Ma perchè convertire in base64 l'immagine ?? ci carico anche i messaggi vocali mp3 da SD dovrei codificare anche quelli allora.
La codifica succhia comunque un botto di memoria secondo me è un ripiego per farlo funzionare lo stesso
maxvetro:
Solo una domandina ( non riesco ad attendere fino a questa sera ) : posso convertire qualunque immagine in Base64 ? o ci sono limiti di grandezza e formato ?
Puoi solo convertire piccolissime gif, queste vengono caricare in memoria e gli arduini di certo non ne abbondano
Ho modificato il prog origininale del tinyweb questo ti permette di caricare su browser qualsiasi file e qualsiasi dimensione
presente su sd, sul serial monitor vedi i file che la pag htm sta caricando
#include <SPI.h>
#include <Ethernet.h>
#include <Flash.h>
#include <SD.h>
#include <TinyWebServer.h>
const int SD_CS = 4;
const int ETHER_CS = 10;
byte ip[] = { 192, 168, 2, 177 };
static uint8_t mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
boolean file_handler(TinyWebServer& web_server);
boolean index_handler(TinyWebServer& web_server);
TinyWebServer::PathHandler handlers[] = {
{"/", TinyWebServer::GET, &index_handler },
{"/" "*", TinyWebServer::GET, &file_handler },
{NULL},
};
const char* headers[] = {"Content-Length",NULL};
TinyWebServer web = TinyWebServer(handlers, headers);
boolean has_filesystem = true;
Sd2Card card;
SdVolume volume;
SdFile root;
SdFile file;
void send_file_name(TinyWebServer& web_server, const char* filename) {
if (!filename) {
web_server.send_error_code(404);
web_server << F("Could not parse URL");
} else {
TinyWebServer::MimeType mime_type = TinyWebServer::get_mime_type_from_filename(filename);
web_server.send_error_code(200);
web_server.send_content_type(mime_type);
web_server.end_headers();
if (file.open(&root, filename, O_READ))
{
Serial << F("Read file "); Serial.println(filename);
web_server.send_file(file);
file.close();
} else {
web_server << F("Could not find file: ") << filename << "\n";
}
}
}
boolean file_handler(TinyWebServer& web_server) {
char* filename = TinyWebServer::get_file_from_path(web_server.get_path());
send_file_name(web_server, filename);
free(filename);
return true;
}
boolean index_handler(TinyWebServer& web_server) {
send_file_name(web_server, "INDEX.HTM");
return true;
}
void setup() {
Serial.begin(9600);
pinMode(SS_PIN, OUTPUT); // set the SS pin as an output
digitalWrite(SS_PIN, HIGH); // and ensure SS is high
pinMode(ETHER_CS, OUTPUT); // Set the CS pin as an output
digitalWrite(ETHER_CS, HIGH); // Turn off the W5100 chip! (wait for
pinMode(SD_CS, OUTPUT); // Set the SDcard CS pin as an output
digitalWrite(SD_CS, HIGH); // Turn off the SD card! (wait for
card.init(SPI_FULL_SPEED, SD_CS);
volume.init(&card);
root.openRoot(&volume);
Ethernet.begin(mac, ip);
web.begin();
Serial << F("Ready to accept HTTP requests.\n");
}
void loop()
{
web.process();
}
maxvetro:
Solo una domandina ( non riesco ad attendere fino a questa sera ) : posso convertire qualunque immagine in Base64 ? o ci sono limiti di grandezza e formato ?
Per la conversione non credo
Tieni presente che poi l'immagine sara' parte integrante del file html
pablos:
la flash.h gestisce le stringhe e gli operatori
char c = (this);*
if (!c) break;*
stream.print(c); // print in char form* [/quote] Ma un uso intensivo non portera' alla distruzione della flash ?? Sempreche' serva a scrivere in flash e non sia un nome di comodo