Dal 2001 il consorzio W3C ha messo a disposizione uno standard di nome SVG, acronimo di Scalable Vector Graphics, il cui intento è permettere la definizione di immagini vettoriali attraverso un linguaggio di markup basato su XML.
L'uso delle immagini vettoriali si contrappone a quelle bitmap per via di importanti vantaggi:
- Permette una definizione infinta perché le immagini sono descritte invece di essere rappresentate da punti;
- Essendo basato su markup la figura può essere indicizzata e contenere metadati.
Questo formato è in genere rappresentato dai file .svg e viene trattato principalmente da strumenti di disegno come Adobe Illustrator o CorelDraw. Con l'avvento di HTML5 è stato però introdotto anche la possibilità di incorporare tali file all'interno di una pagina HTML e un nuovo apposito tag svg.
Questo permette di inserire facilmente piccole figure o di interagirvi tramite DOM e linguaggi di scripting, dando soprattutto una spinta ai browser per far sì che implementino questo standard ormai presente da molti anni. Le ultime versioni dei browser sono infatti pressoché allineate alla versione 1.1.
Di seguito ecco quindi un esempio di SVG all'interno di una pagina HTML5 per la visualizzazione di un grafico a torta.
<!DOCTYPE HTML> <html> <head> <title>Esempio</title> </head> <body> <svg width="500" height="450"> <path fill="blue" d="M 310,402 L 213,214 L 326,35 C 454,111 468,319 310,402 z " /> <path fill="red" d="M 3,208 L 213,214 L 326,35 C 202,-46 8,30 3,208 z "/> <path fill="yellow" d="M 3,208 L 213,214 L 311,400 C 177,467 3,380 3,208 z" /> </svg> </body> </html>
Come si può vedere il markup SVG si integra con la struttura DOM di una normale pagina HTML e produce il risultato visibile nella figura.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Esportare ed analizzare le issue di GitHub con la CLI e GraphQL
.NET Conference Italia 2023
Routing statico e PreRendering in una Blazor Web App
Visualizzare le change sul plan di Terraform tramite le GitHub Actions
Gestire errori funzionali tramite exception in ASP.NET Core Web API
Usare lo spread operator con i collection initializer in C#
Sfruttare MQTT in cloud e in edge con Azure Event Grid
Usare le collection expression per inizializzare una lista di oggetti in C#
Utilizzare gRPC su App Service di Azure
Effettuare il binding di date in Blazor
Eseguire query verso tipi non mappati in Entity Framework Core
Gestire il colore CSS con HWB
I più letti di oggi
- Operazioni di selezione su una DataTable
- annunciato #windowsazure pack: consente di far girare su #windowsserver 2012 e system center on premise i servizi di azure! #msteched
- Aggiungere servizi esterni al ciclo di vita di un'applicazione Silverlight 4.0
- Inviare notifiche toast da background agent con Windows Phone 7.1