Grafica vettoriale scalabile SVG
Estensioni | .svg, .svgz |
---|---|
Tipo MIME | image/svg+xml |
PUID | fmt / 92 |
Sviluppato da | World Wide Web Consortium |
Tipo di formato | Formato immagine vettoriale |
Basato su | Linguaggio di markup estensibile |
Origine di | SVG 1.2 Piccolo (cellulare) |
Standard | SVG 1.1 |
Specifiche | Formato aperto |
Siti web |
www.w3.org/Graphics/SVG svgwg.org |
La Scalable Vector Graphics (in francese "adaptable vector graphic"), o SVG , è un formato di dati ASCII progettato per descrivere insiemi di grafica vettoriale e basato su XML . Questo formato, ispirato direttamente da VML e PGML, è specificato dal World Wide Web Consortium .
SVG è stato sviluppato dal 1999 da un gruppo di aziende all'interno del W3C dopo aver gareggiato per le proposte Precision Graphics Markup Language (PGML) offerte da Adobe da PostScript e Vector Markup Language (VML) offerte da Microsoft da Rich Text Format (RTF). A questo si sono aggiunte varie influenze, in particolare i Cascading Style Sheets (CSS).
Nel settembre 2001, il W3C pubblica la “ Specifica Scalable Vector Graphics (SVG) 1.0, Raccomandazione W3C ”. Nelgennaio 2003, lo standard si sta evolvendo verso la raccomandazione nella versione 1.1 con una seconda edizione inagosto 2011, che è la versione corrente.
In parallelo appare in dicembre 2008la raccomandazione " Scalable Vector Graphics (SVG) Tiny 1.2 Specification " , il cui scopo è di essere utilizzabile su dispositivi mobili ( telefono cellulare , assistente personale , ecc.). Viene presentato come un sottoinsieme di " SVG 1.1 Full ".
La versione 2 del linguaggio è in fase di definizione all'interno del W3C.
SVG è ampiamente utilizzato nel mondo della cartografia e della telefonia mobile .
Le coordinate, le dimensioni e le strutture degli oggetti vettoriali sono indicate in forma numerica nel documento XML. Uno specifico sistema di stile ( CSS o XSL ) permette di indicare i colori ei font da utilizzare. Questo formato gestisce alcune forme geometriche di base (rettangoli, ellissi, ecc. ), ma anche tracciati , che utilizzano le curve di Bézier e consentono quindi di ottenere quasi tutte le forme. Il riempimento può essere eseguito utilizzando gradienti ( gradienti ) di colori di motivi ( pattern ) che sono oggetti SVG o filtri (chiamati shader nelle immagini 3D). Puoi anche applicare motivi lungo i tracciati ( marker ) e utilizzare le funzioni di riempimento. Il canale alfa , per trasparenza , è gestito a tutti i livelli.
Come in ogni documento XML , gli oggetti sono organizzati sotto forma di albero . Il formato consente l'integrazione di animazioni, o la manipolazione di oggetti grafici mediante programmazione, in particolare grazie a script integrabili in SVG.
SVG può essere incluso in altri documenti XML, come documenti XHTML o documenti XML che devono essere elaborati da XSL-FO . Rispettando lo standard XML, un'immagine SVG può essere manipolata anche attraverso il Document Object Model (DOM).
SVG può essere visualizzato in modo nativo con alcuni browser Web o con un plug-in (vedi: Browser SVG ).
Alcuni ambienti grafici lo utilizzano per la gestione e la visualizzazione delle icone e dell'interfaccia, come X.org, GNOME , KDE o alcuni telefoni cellulari.
I software di grafica consentono di modificare facilmente ogni forma, ad esempio spostando i punti, o cambiando il colore delle linee... È lo stesso per il testo che può essere modificato senza toccare le forme, il che facilita notevolmente la modifica dei diagrammi, ad esempio per le traduzioni.
Il codice seguente mostra un rettangolo, un segmento, un cerchio e un testo:
Codice XML <?xml version="1.0" encoding="utf-8"?> <svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="300" height="200"> <title>Exemple simple de figure SVG</title> <desc> Cette figure est constituée d'un rectangle, d'un segment de droite et d'un cercle. </desc> <rect width="100" height="80" x="0" y="70" fill="green" /> <line x1="5" y1="5" x2="250" y2="95" stroke="red" /> <circle cx="90" cy="80" r="50" fill="blue" /> <text x="180" y="60">Un texte</text> </svg> | Immagine corrispondente |
È possibile utilizzare il formato SVG per immagini più complesse (illustrazione della tettonica a placche ).
Il supporto SVG è possibile a diversi livelli: plugin nel browser, a livello di applicazione (browser o software di editing SVG), a livello di ambiente desktop ( KDE , per esempio) o livello "hardware" (telefono).
Alcuni editor visivi sono dotati di un editor di testo. A volte questa modalità di testo supporta il completamento e l'evidenziazione della sintassi per aiutare a scrivere SVG.
Modalità testo XMLLa creazione di un documento di immagine vettoriale da un'immagine raster può essere eseguita in modi diversi che corrispondono a usi diversi. Può essere fatto in modo semplice e automatico quando si tratta di mantenere l'aspetto di un'immagine “linea”. La creazione di un documento di immagine vettoriale può richiedere l'utilizzo di software specializzati con, eventualmente, l'intervento di un operatore, se si tratta di creare un documento di immagine vettoriale dove i componenti dell'immagine (i segmenti che compongono i percorsi ad esempio) può avere significati diversi. È il caso della vettorizzazione di una mappa scansionata comprendente oggetti la cui differenziazione è interessante preservare: limite dei corsi d'acqua, limiti delle strade, limiti delle foreste, ecc.
Di ambienti grafici che utilizzano il formato SVG: X.Org , GNOME e KDE e molti telefoni cellulari, come Sony Ericsson . Acorn RISC OS include anche il supporto nativo per un formato vettoriale chiamato Acorn Draw , simile a SVG.
Il rendering SVG è integrato in HTML5 ( <svg>e tag </svg>) ed è supportato in modo nativo dalla maggior parte dei browser Web dal 2010.
Supporto SVG nativoI plugin per SVG non sono attualmente mantenuti, almeno per il browser Internet Explorer . Rimane solo il plugin KSVG.
L'implementazione del rendering SVG per dispositivi mobili ( PDA , telefoni cellulari) viene eseguita in modo nativo (Ikivo, Bitflash Adobe) o tramite software browser (browser Java Sun, Opera Mini e iPhone Safari).
Lo standard supportato da questi dispositivi dipende dal produttore del telefono e dalla versione installata. La maggior parte delle versioni supporta lo standard SVG Tiny 1.1 e talvolta 1.1+ con supporto per moduli aggiuntivi (gradiente e opacità).
Nokia supporta il rendering SVG internamente per la sua piattaforma Nokia S60 o basati su Java standard JSR 226 , per Java ME piattaforma S60 ( 3 ° edizione SP1 ). Anche altre serie come la 6280 supportano SVG.
La maggior parte dei telefoni Sony Ericsson sta iniziando a supportare SVG Tiny 1.1 come il K700 e 1.1+ come il K750 (pl) , C905 , W890 (en) e W995 .
I dispositivi che supportano la piattaforma java ME e lo standard JSR 226 supportano anche il rendering SVG 1.1+ .
SVG è supportato anche dai modelli prodotti da Motorola , Samsung , LG o Siemens , Sony .
Lo standard SVG non consente la creazione di punti di articolazione , come i nodi in un grafico. La nozione di puntatore non esiste in SVG , il che rende complessa la descrizione delle scene dinamiche.
SVG non ha ereditato tutte le proprietà del suo genitore diretto VML , come il gradiente "GradientTitle", l'ombra di tipo "Prospettiva", l'"Estrusione" 3D, il riempimento automatico del tratto , il riempimento automatico -scuro , adattamento automatico del testo- regolare , ecc. Esistono alternative fittizie, ma rendono i file SVG più pesanti e più lenti da visualizzare.
Infine, SVG è per lo più supportato dai browser solo nella sua versione 1.1 , che non consente l'uso del controllo di flusso (flowRoot, flowRegion) e quindi non consente ad esempio di realizzare un testo che si adatti al suo contenitore e restituisca automaticamente le nuove righe.