Codificare un'immagine in Base64 / Data URI
- Dashboard
- Documentazione
- API
Formato di file
Puoi caricare un numero illimitato di immagini con un peso massimo di 20M.
Sicurezza
I tuoi dati non vengono memorizzati sui nostri server.
Browser supportati
Tutti i browser recenti sono supportati. Se dovessi comunque incontrare un bug, segnalacelo per la correzione.
Cos'è una Data URI?
Una Data URI è un URL che contiene direttamente i dati di una risorsa invece di
puntare a un file remoto. La sua forma generale è
data:[<mediatype>][;base64],<data>. Per un'immagine, si ha tipicamente
data:image/png;base64,iVBORw0KGgo…. La risorsa è incorporata nell'HTML, nel CSS o nel JSON
e caricata senza alcuna richiesta HTTP aggiuntiva.
Perché codificare un'immagine in Base64?
Le motivazioni comuni:
- Ridurre le richieste HTTP: integrare un'icona direttamente nel CSS invece di caricarla in aggiunta al documento
- Firma email con immagine inline: nessun rischio che l'immagine venga bloccata come contenuto remoto
- Web Components / Web Workers: dove caricare una risorsa esterna pone spesso un problema di scope o di CORS
- Storage locale (LocalStorage, IndexedDB, database): serializzare una miniatura di avatar come stringa
- Self-contained snippets: un file HTML autosufficiente, senza dipendenze esterne
Casi d'uso tipici
Alcuni contesti concreti in cui la codifica Base64 di un'immagine si giustifica:
- Icone SVG inline in CSS (
background-image: url("data:image/svg+xml;base64,…")) - Firme email personalizzate con logo
- Prototipazione rapida di una pagina autonoma condivisa via email
- Web component autonomi (un solo file distribuibile)
- Generazione di PDF lato browser (jsPDF) con miniature incorporate
- Dati di test (mock) che contengono immagini
Come usarlo
Tre passaggi:
- Caricate la vostra immagine (PNG, JPG, SVG, WebP, GIF) tramite la zona di drop
- Cliccate su «Codifica»
- Copiate la Data URI risultante con il pulsante dedicato e incollatela nel vostro HTML, CSS o JSON
Limiti e buone pratiche
Il Base64 non è una soluzione miracolosa. Alcune precauzioni:
- Il Base64 aumenta la dimensione di circa il 33%: 4 caratteri ASCII per ogni 3 byte binari
- Le immagini codificate non sono messe in cache separatamente dal browser; vengono ricaricate con l'HTML/CSS che le contiene
- Da privilegiare per immagini sotto i 10 KB; oltre, un file esterno è generalmente più efficiente
- Per l'SVG, preferire la codifica URL (tramite
encodeURIComponent) piuttosto che Base64: il risultato è più breve e resta parsabile come testo - Tool di build moderni (Webpack, Vite) automatizzano la scelta Base64 vs. file esterno tramite una soglia di dimensione configurabile
Esempi concreti
HTML:
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNgYAAAAAMAAS+rJYwAAAAASUVORK5CYII=" alt="pixel">
CSS:
.icon {
background: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0i…") no-repeat;
width: 16px;
height: 16px;
}
JSON (mock data):
{
"user": {
"name": "Adrien",
"avatar": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEA…"
}
}
FAQ
Qual è la differenza tra Base64 e binario?
Il binario rappresenta i byte grezzi di un file. Il Base64 è una codifica che trasforma questi byte in 64 caratteri ASCII stampabili (A-Z, a-z, 0-9, +, /). I contesti testuali (HTML, JSON, email) non possono trasportare il binario; il Base64 risolve questo problema al prezzo di un sovraccarico di dimensione del 33%.
Perché la mia Data URI è così lunga?
Un'immagine di 30 KB in binario diventa circa 40 KB in Base64. E ogni carattere è un byte ASCII, quindi sì, la stringa è lunga. È inerente alla codifica. Per immagini grandi, conservare un file esterno.
Tutti i browser supportano le Data URI?
Sì, senza eccezioni tra i browser moderni (Chrome, Firefox, Safari, Edge da IE8 in poi). Limiti storici: IE8 limitava a 32 KB. Nessun problema oggi sul web.
Come decodificare una Data URI?
Il nostro decoder di immagini Base64 fa l'operazione inversa: incollate la vostra Data URI, recuperate il file immagine (PNG, JPG, SVG, WebP) pronto da caricare o salvare.
Base64 vs. URL encoding per gli SVG?
Per l'SVG, l'URL encoding (con encodeURIComponent) produce una stringa più breve di
Base64 e resta leggibile come testo. È la scelta raccomandata in CSS quando si integra un SVG inline.
Per i formati binari (PNG, JPG), Base64 resta obbligatorio.
La codifica Base64 influisce sulla qualità dell'immagine?
No. La codifica è lossless: è una biiezione byte binario ↔ stringa Base64. I pixel originali sono strettamente preservati. Solo la dimensione del file trasportato aumenta del 33%.
Domande frequenti
Quando è meglio evitare la Data URI?
Non appena un'immagine supera una decina di kilobyte ed è probabile che venga riutilizzata su più pagine, un file esterno è preferibile. Il browser può allora metterlo in cache separatamente dall'HTML che lo riferisce. Una Data URI allunga il documento principale e obbliga a riscaricare l'immagine a ogni caricamento di pagina.
La mia immagine viene inviata su un server?
L'immagine transita per il nostro server il tempo della codifica e non viene conservata dopo il ritorno
del risultato. Nessun servizio terzo viene sollecitato. Per un file strettamente confidenziale,
l'equivalente locale è base64 -w 0 mia-immagine.png su Linux o
certutil -encode su Windows.
Perché privilegiare l'URL encoding piuttosto che base64 per un SVG?
Un SVG è testo XML. Codificato in base64, diventa illeggibile e circa il 33% più voluminoso.
In URL encoding tramite encodeURIComponent, il risultato resta leggibile e più breve.
In CSS, scrivere url("data:image/svg+xml;utf8,<svg…>") con i caratteri
speciali escapati dà un file finale più piccolo di una versione base64.
Qual è la dimensione massima che posso codificare?
La dimensione di file accettata dal form è limitata a qualche megabyte, sufficiente per la grande maggioranza delle icone, miniature e avatar. Oltre, uscite dal caso d'uso ragionevole di una Data URI: un file statico servito dal vostro CDN sarà molto più efficiente per il browser così come per le vostre metriche Core Web Vitals.
Perché il browser non mette in cache una Data URI?
La cache HTTP funziona per URL. Una Data URI fa parte del documento che la contiene, quindi è
ricaricata con esso. Un'icona esterna in icon.png, al contrario, viene messa in cache
una volta sola e riutilizzata su tutte le pagine che la riferiscono. È la principale
ragione per cui la Data URI resta uno strumento di nicchia, non un sostituto generale.
Esempio di richiesta
curl -X POST https://cdrn.fr/api/v1/tools/base64-image-encoder/execute \
-F "file=@/path/to/file"
Schema di input
| Campo | Tipo | Richiesto | Predefinito |
|---|---|---|---|
file |
file | ✓ | – |
questo strumento si aspetta un file - utilizzare Content-Type multipart/form-data invece di application/json
Endpoint
GET https://cdrn.fr/api/v1/tools- elenca tutti gli strumenti disponibiliGET https://cdrn.fr/api/v1/tools/base64-image-encoder- recupera lo schema di questo strumentoPOST https://cdrn.fr/api/v1/tools/base64-image-encoder/execute- esegue questo strumento con un payload JSON