Come si usa
- Trascina un file .jpg o .jpeg nell’area di rilascio, fai clic per sceglierne uno oppure incolla un’immagine.
- Per mantenere il file esattamente com’è, lascia Converti in su Mantieni originale. Per ridurlo, scegli JPEG o WebP e abbassa la Qualità.
- Imposta una Larghezza massima se la foto è più grande di quanto verrà visualizzata.
- Copia l’output che ti serve, per esempio il tag img per una pagina o il Base64 puro per un’API, oppure scaricalo come file.
JPEG in breve
JPEG è il formato standard per le fotografie. Usa una compressione con perdita, che scarta i dettagli che l’occhio nota appena, e non supporta la trasparenza. I file terminano con .jpg, .jpeg o talvolta .jfif, ma il tipo MIME è sempre image/jpeg; image/jpg non è un tipo registrato, anche se molti browser lo tollerano. Un data URI JPEG inizia con data:image/jpeg;base64,/9j/, cioè il marcatore di inizio immagine codificato.
Ridurre una foto prima della codifica
Le foto sono il caso in cui Base64 pesa di più: un JPEG da 200 KB diventa circa 270 KB di testo. Due impostazioni fanno la differenza più grande:
- Larghezza massima. Dimezzare la larghezza riduce il numero di pixel a un quarto. Raramente serve una foto da smartphone larga 4000 pixel a quella dimensione.
- Qualità. Valori intorno al 70-80% di solito appaiono identici all’originale sullo schermo e producono file molto più piccoli. Valori molto bassi mostrano artefatti a blocchi.
La conversione in WebP con una qualità simile spesso dà file ancora più piccoli. Tieni d’occhio la dimensione codificata mostrata per ogni impostazione e scegli il risultato più piccolo che appare ancora corretto.
Metadati EXIF
Le foto scattate con fotocamere e smartphone contengono metadati EXIF: modello della fotocamera, data e ora e talvolta coordinate GPS. Senza conversione, l’output Base64 contiene i byte originali, metadati inclusi, e chiunque lo decodifichi può leggerli. È ciò che vuoi quando conta il file esatto, per esempio se un’API verifica un hash o legge la data di scatto.
La conversione ricodifica i pixel nel browser e i dati EXIF non vengono trasferiti. L’output è più piccolo e non rivela più dove è stata scattata la foto.
Quando conviene un data URI JPEG
Sono casi adatti i minuscoli segnaposto sfocati (un’immagine larga da 20 a 40 pixel, incorporata mentre la foto completa si carica in modo differito), le miniature nelle risposte JSON e le esportazioni HTML in un unico file. Immagini di copertina e gallerie vanno invece in file separati che il browser può mettere in cache.
# Python
import base64
with open('photo.jpg', 'rb') as f:
uri = 'data:image/jpeg;base64,' + base64.b64encode(f.read()).decode('ascii')
Domande frequenti
JPG e JPEG sono la stessa cosa?
Sì. L’estensione più corta .jpg risale a sistemi che consentivano solo tre caratteri. Si tratta dello stesso formato, con tipo MIME image/jpeg.
La codifica Base64 riduce la qualità del JPEG?
No. Base64 è una rappresentazione senza perdita dei byte del file. La qualità cambia solo se scegli una conversione, che ricodifica l’immagine con la qualità impostata.
Un data URI JPEG può avere uno sfondo trasparente?
La stringa Base64 contiene la posizione della mia foto?
Può contenerla. Se il JPEG originale ha dati GPS nei metadati EXIF e lo codifichi senza modificarlo, la posizione è presente nella stringa. Convertendo l’immagine i metadati EXIF vengono rimossi.