Scalable Vector Graphics

vektorový grafický formát
(přesměrováno z SVG)

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[2] 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.[3]

Scalable Vector Graphics
Logo
Přípona souboru.svg, .svgz
Typ internetového médiaimage/svg+xml[1]
Type code"svg ", "svgz"
Uniform Type Identifierpublic.svg-image
TvůrceW3C
První verze4. září 2001
Poslední verze1.1 (Second Edition) (16. srpen 2011)
Typ formátuvektorový grafický formát
Rozšiřuje formátXML
Standard(y)W3C SVG
Otevřený formátano
Webwww.w3.org/Graphics/SVG
Statický obrázek generovaný pomocí SVG jako ukázka. Pro zobrazení originálního obrázku SVG soubor je třeba prohlížeč s přímou podporou SVG a nebo se zásuvným modulem který podporuje prohlížení SVG.
Stejný zmenšený obrázek který demonstruje jak může být u SVG snadno změněna velikost.

Výhody a nevýhody

editovat
Související informace naleznete také v článku Vektorová grafika.

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

editovat

SVG definuje tři základní typy grafických objektů:

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

editovat

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

editovat

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.

 
Příklad obrázku v SVG
<?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>
 
Příklad obrázku v SVG

Reference

editovat
  1. Media Type Registration for image/svg+xml
  2. STREICHARDT, Andreas. KDE Conquers the Vectors with KSVG [online]. 16 September 2003 [cit. 2012-02-11]. Dostupné online. 
  3. HTML5 Inline SVG na w3schools.com

Související články

editovat

Externí odkazy

editovat