Vettore SVG (.svg)

W3C Standard

Scalable Vector Graphics (SVG) è un formato di immagine vettoriale basato su XML per grafica bidimensionale con supporto per interattività, stili CSS e animazioni.

Converti da SVG a PNG

Convertitore gratuito da SVG a PNG nel browser. Converti i file istantaneamente sul tuo dispositivo.

Comprimi SVG online

Privato - i file non lasciano mai il tuo dispositivo

Ispezione e metadati

I sistemi operativi e gli analizzatori di file identificano i file SVG ispezionando la sequenza di byte binari iniziale:

Seleziona o rilascia i file qui

Privato - i file non lasciano mai il tuo dispositivo

o incolla Ctrl+V
Garanzia di privacy con zero trasmissioni di rete: 0 byte caricati su server esterni. Tutta l'elaborazione è avvenuta localmente nella sandbox del tuo browser.

Firma dell'intestazione a livello di byte (Magic Bytes)

I sistemi operativi e gli analizzatori di file identificano i file SVG ispezionando la sequenza di byte binari iniziale:

FIRMA ESADECIMALE (OFFSET 0):

3C 73 76 67

RAPPRESENTAZIONE ASCII: <svg

Standardizzazione: W3C Recommendation (SVG 1.1 / SVG 2)

Specifiche tecniche

Architettura del contenitoreDocumento di markup di testo basato su XML che definisce la geometria vettoriale 2D
CompressioneCompressione di testo Gzip / Brotli (SVGZ utilizza la compressione gzip)
Endianness dei byteNon applicabile (Flusso di caratteri UTF-8 / UTF-16 basato su testo)
Spazi coloresRGB, CSS Color Module 4 (Display P3, lab, lch)
Canali e strutturaForme vettoriali a risoluzione illimitata, curve di Bézier, tipografia e maschere di opacità
Dimensioni massimeIndipendente dalla risoluzione (si scala infinitamente a qualsiasi viewport senza sgranatura)
TrasparenzaTrasparenza alfa variabile completa e modalità di fusione CSS
Streaming e progressivoAnalisi incrementale del flusso di testo supportata dal parser XML del browser

Matrice di confronto tecnico: SVG vs Concorrenti

Attributo tecnicoSVG (Attuale)HTML5 CanvasPDFPNG
Modello di renderingDOM vettoriale in modalità mantenutaCanvas bitmap in modalità immediataContenitore di pagine fisse in modalità mantenutaGriglia di pixel raster
Stili e CSSCompletamente personalizzabile tramite classi e variabili CSSRichiede ridisegni dell'API canvas JavaScriptNessuno stile CSS dinamicoPixel raster fissi
Scalabilità infinitaSì (curve vettoriali matematiche)Richiede il ridimensionamento manuale della risoluzioneSì (elementi vettoriali)No (si sgrana se ingrandito)
InterattivitàEventi DOM nativi (passaggio del puntatore, clic, animazioni)Richiede calcoli manuali per rilevare le aree attiveDocumento staticoRichiede image map o canvas

Modalità di corruzione comuni e guida al recupero esadecimale

Il browser mostra XML Parsing Error: token non chiuso o tag non corrispondente.

Causa principale: Sintassi XML non valida, tag di chiusura mancanti o e commerciali non sottoposte a escape ('&' anziché '&amp;').

Ripristino: Convalida con un linter XML (xmllint file.svg) e correggi i tag non bilanciati.

Analisi di sicurezza e vettori di attacco del parser

Poiché SVG è XML eseguibile che supporta tag '<script>' ed entità esterne, presenta significativi rischi XSS e SSRF se vengono visualizzati SVG non attendibili.

Vettori di attacco noti

  • Stored Cross-Site Scripting (XSS) tramite tag '<script>' incorporati o gestori di eventi 'onload='.
  • Attacchi XXE (XML External Entity) che leggono i file del server locale quando vengono analizzati sui server di backend.
  • Espansione dell'entità XML Billion Laughs che causa il denial of service.

Migliori pratiche difensive: Sanifica sempre gli SVG utilizzando DOMPurify prima di incorporarli, oppure servi gli SVG con 'Content-Security-Policy: default-src 'none'' o come tag '<img>' che disabilitano automaticamente gli script.

Origini storiche e tappe fondamentali

2018W3C SVG 2 Candidate Recommendation integra i moderni stili CSS.
2011SVG 1.1 (Second Edition) ha contribuito a diffondere il supporto SVG nei browser desktop e mobili.
2001Il W3C pubblica la specifica SVG 1.0 sviluppata dalle proposte VML e PGML.

Vantaggi principali

  • Indipendenza dalla risoluzione infinita: linee e tipografia nitide su qualsiasi display o scala di stampa.
  • Dimensione del file estremamente ridotta per loghi, icone ed elementi di interfaccia utente.
  • Completamente programmabile e personalizzabile tramite CSS e JavaScript all'interno del DOM del browser.

Limiti tecnici e svantaggi

  • Inadatto per fotografie o immagini complesse a tono continuo.
  • I percorsi vettoriali complessi con migliaia di nodi possono causare rallentamenti del rendering della CPU e un elevato consumo della batteria.
  • La natura XML consente script incorporati, richiedendo una rigorosa sanificazione prima di eseguire il rendering di caricamenti non attendibili.

Curiosità tecniche

  • Gzip può ridurre notevolmente le dimensioni di alcuni file SVG; la riduzione dipende dal contenuto del documento e dalle impostazioni di compressione.
  • L'attributo viewBox definisce un'area di disegno a coordinate astratte che si mappa dinamicamente ai pixel fisici dello schermo.
  • I primi browser web inizialmente mancavano di motori SVG nativi, spingendo Adobe a distribuire il plugin per browser Adobe SVG Viewer prima che il supporto nativo dei browser si consolidasse intorno al 2011.

Domande tecniche frequenti

I file SVG possono contenere codice dannoso?

Sì. Poiché SVG è XML valido, può contenere JavaScript incorporato ('<script>') che viene eseguito se l'SVG viene caricato direttamente in un browser o aperto in un elemento '<svg>' incorporato. La distribuzione di SVG tramite un tag '<img>' neutralizza automaticamente l'esecuzione degli script.

Quando dovrei usare SVG invece di PNG?

Usa SVG per icone, loghi, grafici, illustrazioni e tipografia laddove siano richiesti un ridimensionamento nitido su schermi di qualsiasi dimensione e file di piccole dimensioni. Usa PNG o WebP per le fotografie.

Come posso ottimizzare file SVG grandi o complessi?

Puoi ripulire i tracciati vettoriali rimuovendo metadati ridondanti, commenti dell'editor (da Inkscape o Illustrator), gruppi invisibili e dichiarazioni di namespace non utilizzate utilizzando strumenti come SVGO o eseguendo la compressione SVG.