Scalable Vector Graphics

SVG (z anglického Scalable Vector Graphics škálovatelná vektorová grafika) je značkovací jazyk a formát souboru, který popisuje dvojrozměrnou vektorovou grafiku pomocí XML. Formát SVG je základním otevřeným formátem pro vektorovou grafiku na webových stránkách, jako první jej v roce 2004 podporoval webový prohlížeč Konqueror a od roku 2011 je již podporován většinou prohlížečů a také na mobilních zařízeních. HTML5 umožňuje vložit kód SVG obrázku přímo do kódu webové stránky.

Výhody a nevýhody 

Grafika SVG neobsahuje obrazová data pixel po pixelu, ale seznam svých součástí – grafických objektů, pomocí kterých lze obrázek vykreslit. SVG je ideální pro jednoduchou grafiku, například grafy, binární stromy, chronologie, rodokmeny, diagramy, finálové „pavouky“ apod. Mezi výhody patří:
 nezávislost na výsledném rozlišení (s výjimkou SVG, jehož součástí je rastrový obrázek)
 velikost výsledného souboru
 nezávislost na platformě
 snadná přenositelnost
 je čitelný pro počítač i pro člověka
 obsahuje-li text, je možné jej vyhledávat
 elementy SVG lze seskupovat do vrstev (element <g>) a ty definovaným způsobem transformovat
 možnost mít více vrstev pod sebou
 transformace vrstev, změna jejich pořadí, nebo editace prvků, které (nebo jejichž části) aktuálně zasahují mimo rozměry vektorového obrázku, je nedestruktivní; na druhou stranu u vícevrstevnatých SVG musejí prohlížeče „počítat“ výslednou podobu každé překrývané části obrazu a nemohou, jako u rastrových obrázků pouze zobrazit obrazové body na dané pozici.
 „content-awareness“ – má vědomí o svém obsahu
 výhody XML, např. možnost…
 použít nástroje pracující s XML pro čtení a zpracování SVG
 vkládat do elementů další atributy
 možnost stylovat prvky SVG pomocí kaskádových stylů
 oproti rastrovému obrázku např. změna barvy nebo velikosti nutně neznamená použití nového obrázku
 spolu s JavaScriptem rozšiřitelnost na  interaktivitu a animace (ty však nepodporuje nativně – musí se naprogramovat).
 SVG, jako soubor nebo součást HTML, může ve svých prvcích obsahovat odkazy, na něž uživatel může kliknout, nebo události (například přejetí kurzoru myši nad prvkem) – do nich může být vložen škodlivý kód

Pokročilejší implementace SVG zavádějí do grafických objektů jednoduché funkce a interaktivitu. Zejména při použití v HTML se zavedením SVG tak prohlížečům přibyla zodpovědnost sestavovat SVG a reagovat na každou změnu jejich obsahu správným překreslením. 

SVG je vhodné pro „přibližné“, více či méně schematické zobrazení postav, předmětů, atd., bez fotorealistických podrobností. Dobře se hodí na velkoformátový tisk, kde by rastrové podklady zabíraly mnoho MiB nebo GiB dat a pro každou velikost by bylo doporučeno upravovat rozměry obrázku. Přestože SVG může obsahovat prvky s bitmapovou grafikou, její použití znamená de facto porušení škálovatelnosti, což jde proti filosofii toho, proč byl tento formát vytvořen. Množství obsažených prvků v SVG má svoji praktickou hranici (třeba animace v SVG s např. milionem objektů by na běžných počítačích nebyla možná).

Prvky SVG 
SVG definuje tři základní typy grafických objektů:
 vektorové tvary (vector graphic shapes – obdélník, kružnice, elipsa, úsečka, lomená čára, mnohoúhelník a křivka)
 rastrové obrazy (raster images)
 textové objekty
Tyto objekty mohou být různě seskupeny, formátovány pomocí atributů nebo stylů CSS a polohovány pomocí obecných prostorových transformací.
SVG též podporuje ořezávání objektů, alpha masking, interaktivitu, filtrování obrazu (konvoluce, displacement mapping, atd…) a animaci. Ne všechny SVG prohlížeče však umí všechny tyto vlastnosti.

Jak zobrazit SVG 
Pro zobrazení vektorové grafiky na některých webových prohlížečích je třeba mít nainstalovaný zásuvný modul, například od firmy Adobe, který je zdarma. Prohlížeče jako Firefox (od verze 1.5 (listopad 2005)) a Opera (od verze 8.0 (duben 2005)) umí bez dodatečných modulů interpretovat SVG grafiku. Microsoft Internet Explorer částečně podporuje SVG formát od verze 9 a plně od verze 10. (Soubory SVG ukazuje jako obrázky rovněž tato encyklopedie, nezávisle na tom, jakou verzi prohlížeče máte.)

Příklady SVG 
Příklad obrázku v SVG. Jazyk SVG je aplikací XML, kód je napsán jako normální textový soubor a může být snadno editován.

<?xml version="1.0"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
 "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">

<svg xmlns="http://www.w3.org/2000/svg"
 width="467" height="462">
 <rect x="80" y="60" width="250" height="250" rx="20"
 style="fill:#ff0000; stroke:#000000;stroke-width:2px;" />
 
 <rect x="140" y="120" width="250" height="250" rx="40"
 style="fill:#0000ff; stroke:#000000; stroke-width:2px;
 fill-opacity:0.7;" />
</svg>

Reference

Související články 
 Počítačová grafika
 Seznam editorů vektorové grafiky
 CGM

Externí odkazy 
 
 
 Kurz SVG na stránkách Interval.cz
  Informace o SVG na W3C
  Zásuvný modul pro prohlížení SVG od firmy Adobe
  SVG 1.1 Specifikace – technická specifikace formátu
  Téma SVG na w3schools.com
  On-line SVG editor 

Formáty vektorové grafiky
Otevřené formáty
Standardy W3C
XML
Značkovací jazyky