Convertitore da SVG a Base64

Codifica icone, loghi e illustrazioni SVG in Base64 per tag img, sfondi CSS e JSON. Prima della codifica puoi anche rasterizzare un SVG in PNG, JPEG o WebP.

Funziona interamente nel tuo browser. Non viene caricato nulla.

Come si usa

  1. Trascina un file .svg nell’area di rilascio, fai clic per sceglierne uno oppure incolla un’immagine.
  2. Lascia Converti in su Mantieni originale per codificare il markup SVG vero e proprio, oppure scegli PNG, JPEG o WebP per trasformarlo in pixel.
  3. Se lo rasterizzi, imposta una Larghezza massima per controllare la dimensione in pixel.
  4. Copia l’output background-image CSS per un foglio di stile, oppure la versione data URI, Base64 puro, tag img o Markdown.

SVG come data URI

SVG (Scalable Vector Graphics, tipo MIME image/svg+xml) descrive le forme come testo XML, quindi resta nitido a qualsiasi dimensione. Il suo Base64 di solito inizia con PHN2Zy (cioè <svg codificato) oppure con PD94bWw quando il file comincia con una dichiarazione XML.

Quando un SVG viene usato come immagine, l’elemento radice deve avere l’attributo xmlns="http://www.w3.org/2000/svg". Molti frammenti inline copiati dall’HTML lo omettono e in quel caso il data URI non mostra nulla. In modalità immagine anche le risorse esterne vengono bloccate, quindi i web font e le immagini collegate all’interno dell’SVG non vengono caricati: converti prima il testo in tracciati o incorpora quelle risorse.

Base64 o codifica URL?

Dato che SVG è già testo, un data URI può contenere direttamente il markup, con solo pochi caratteri in codifica percentuale (<, >, #, % e le virgolette). Per un’icona tipica in CSS questa forma è più corta del Base64 e si comprime meglio con gzip. Base64 è la scelta più sicura quando la stringa passa attraverso sistemi che alterano virgolette o caratteri speciali, oppure quando un’API si aspetta Base64.

/* Base64 */
background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0i...");

/* Codifica percentuale */
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg'...");

Per creare la forma in codifica percentuale, usa il Generatore di data URI e scegli Codifica percentuale.

Sanifica gli SVG non attendibili

Un SVG può contenere elementi <script>, attributi di gestione degli eventi come onload e link ad altri documenti. I browser non eseguono gli script di un SVG mostrato tramite <img> o uno sfondo CSS, ma lo stesso file inserito inline nell’HTML o aperto da solo può eseguirli. Se gli utenti possono caricare file SVG nella tua applicazione, sanificali, per esempio con DOMPurify, prima di salvarli o incorporarli. Base64 nasconde il markup solo a un’occhiata veloce, ma non lo rende sicuro.

Domande frequenti

Per gli SVG è meglio Base64 o la codifica URL?

Per gli SVG nei CSS la codifica URL di solito produce una stringa più corta e resta leggibile. Base64 è più robusto quando la stringa passa attraverso altri sistemi o quando un’API richiede Base64.

Perché il mio data URI SVG non viene visualizzato?
Le cause più comuni sono l’assenza dell’attributo xmlns sull’elemento radice, un # non codificato in un URI in codifica percentuale e font o immagini che l’SVG carica da altri file.
Posso convertire un SVG in una stringa Base64 PNG?

Sì. Scegli PNG come formato di destinazione. Il browser trasforma l’SVG in pixel e l’opzione Larghezza massima ti permette di ottenere un risultato più piccolo.

Posso decodificare un data URI SVG e riottenere il file?
Sì. Incollalo in Base64 in SVG per vederne l’anteprima e scaricare il file .svg.