Scalable Vector Graphics

Scalable Vector Graphics (SVG) je značkovací jazyk z rodiny značkovacích jazykov XML, ktorý je primárne určený na opis dvojrozmernej, statickej alebo animovanej vektorovej grafiky.

SVG je otvorený štandard, ktorý vytvorilo konzorcium World Wide Web, zodpovedné za štandardy ako HTML a XHTML.

Prehľad 
Jazyk SVG umožňuje definovať tri typy grafických objektov:
 tvary vektorovej grafiky (napr. cesty pozostávajúce z rovných čiar a kriviek a oblasti nimi ohraničené),
 rastrové obrázky
 a text.

Grafické objekty je možné zoskupovať, štylizovať, transformovať a zoskupovať do vopred vykreslených objektov. Text môže byť v ktoromkoľvek mennom priestore XML vhodnom pre aplikáciu, čo rozširuje vyhľadávacie možnosti a prístupnosť SVG grafiky. Medzi možnosti patria vnorené transformácie, orezávacie cesty, alfa masky, filtrovacie efekty, šablóny objektov a rozšíriteľnosť.

SVG kresby môžu byť dynamické a interaktívne. Document Object Model (DOM) pre SVG, ktorého podmnožinou je úplné XML DOM, umožňuje priamu a výkonnú animáciu vektorovej grafiky pomocou ECMAScriptu alebo SMIL. Ľubovoľnému grafickému objektu SVG je možné priradiť reakciu na udalosť ako onmouseover a onclick. Vďaka svojej kompatibilite a výhodnému využitiu iných webových štandardov je skriptovanie možné vykonávať súčasne na SVG elementoch a iných XML elementoch z rozličných menných priestorov v rámci tej istej webovej stránky.

Ak je problémom dostupnosť ukladacieho priestoru, tak sú SVG obrázky ukladané s použitím kompresie, napríkld gzip. V takom prípade môžu byť nazývané „SVGZ súbory“. Formáty používajúce jazyk XML obvykle osahujú množstvo redundantných údajov, preto sa XML zvyčajne veľmi dobre komprimuje a výsledné skomprimované súbory môžu byť oveľa menšie. Často je však už pôvodný vektorový súbor (SVG) menší ako jeho rasterizovaná verzia.

Potenciálny vplyv 
Rozšírenie SVG klientov, obzvlášť natívnou podporou vo webových prehliadačoch, sa pravdepodobne revolučne odrazí na webe. Súčasným trendom sú webové stránky, ktoré sa správajú ako počítačová aplikácia použitím technológie známej ako Ajax. SVG má potenciál do veľkej miery rozšíriť možnosti Ajaxu tým, že poskytuje ideálny mechanizmus na dynamické vykresľovanie elementov stránky.

Mobilné profily 
Z dôvodu záujmu z priemyselnej sféry boli predstavené dva mobilné profily SVG 1.1: SVG Tiny (SVGT) a SVG Basic (SVGB). Sú to podmnožiny plného SVG štandardu, ktoré sú cielené pre klientské aplikácie s obmedzenými možnosťami. Konkrétne SVG Tiny bolo definované pre značne obmedzené mobilné zariadenia ako mobilný telefón a SVG Basic bolo definované na použitie v mobilných zariadeniach vyššej úrovne, ako PDAs.

Ani jeden z mobilných profilov neposkytuje úplnú podporu DOM, hoci SVG Basic má nepovinnú podporu skriptovania, ale sú to úplne kompatibilné podmožiny úplného štandardu, preto je aj bez ich použitia možné i na obmedzených mobilných zariadeniach vykresľovať značnú časť SVG grafiky.

História vývoja 
SVG vyvinula SVG Working Group W3C od roku 1998, po tom ako Macromedia a Microsoft predstavili Vector Markup Language (VML), kým Adobe Systems a Sun Microsystems predložili konkurenčný formát známy ako PGML. Pracovnej skupine predsedal Chris Lilley z W3C.

 SVG 1.0 sa stalo Odporúčaním W3C 4. septembra 2001.
 SVG 1.1 sa stalo Odporúčaním W3C 14. januára 2003.
 SVG Tiny a SVG Basic (Mobilné SVG profily) sa stali Odporúčaním W3C 14. januára 2003. Sú opísané ako profily SVG 1.1.
 SVG Tiny 1.2 sa stalo Kandidátnym odporúčaním W3C 10. augusta 2006. SVG Full 1.2 je v súčasnosti Pracovným náčrtom W3C. SVG 1.2 Mobile bol zámerne uvoľnený ako profil a neskôr prepracovaný na úplnú špecifikáciu vrátane všetkých potrebných súčastí SVG 1.1 a SVG 1.2. Podobne prepracovaný náčrt SVG 1.2 Full zatiaľ nebol uvoľnený.

Podpora SVG v prehliadačoch a iných aplikáciách 
Podpora SVG na webe rastie a v súčasnosti je tento formát dostatočne podporovaný aktuálnymi verziami majoritných prehliadačov. Webové stránky, ktoré používajú SVG obrázky síce často poskytujú aj rastrovú verziu obrázka, ktorá je klientovi posielaná buď automaticky pomocou HTTP content negotiation, alebo po voľbe používateľa, no toto riešenie pomaly prestáva byť nevyhnutným. Generovanie alternatívnych (rastrových) verzií obrázkov môže byť automatizované knižnicami ako ImageMagick, ktorá poskytuje rýchlu, ale neúplnú implementáciu SVG alebo Batik, ktorá implementuje celé SVG, ale je pomalšia.

Podpora pomocou zásuvných modulov 
Staršie verzie prehliadačov (najmä Internet Explorera) vyžadovali na prehliadanie SVG obrázkov zásuvný modul. Medzi dnes dostupné na stolnom počítači patria Adobe SVG Viewer a Corel SVG Viewer (už nie je podporovaný).

Natívna podpora 
Natívna podpora má niekoľko výhod. Napríklad nie je potrebný zásuvný modul, SVG je možné kombinovať s inými formátmi v rámci jedného dokumentu a skriptovanie medzi jednotlivými dokumentmi je oveľa spoľahlivejšie.
Webový prehliadač Opera (od verzie 8.0 Beta 3) podporuje špecifikáciu SVG 1.1 Tiny, kým Opera 9 pridáva podporu SVG 1.1 Basic a niektoré aspekty SVG 1.1 Full.
 Prehliadač Mozilla Firefox (od 1.5 Alpha) a balík aplikácií pre prácu s internetom Mozilla SeaMonkey, ktoré zdieľajú kódovú základňu, majú oba neúplnú podporu špecifikácie SVG 1.1 Full. Prehľad podporovaných modulov v prehliadači Firefox 1.5 sa nachádza tu. Prehľad modulov, na ktorých sa pracuje vo vývojovej vetve Firefoxu sa nachádza tu.
 Prehliadač Amaya má čiastočnú podporu SVG.
 Konqueror projektu KDE má pomerne úplný zásuvný modul SVG zvaný KSVG. Vývoj KSVG1 sa skončil, ale na KSVG2 sa aktívne pracuje vyše roka a je predurčený na zaradenie do jadra KDE 4, čo by mohlo umožniť jeho natívne vykresľovanie niekedy v budúcnosti. Inde v KDE je formát veľmi užitočný a od verzie 3.4 sú podporované SVG pozadia.
 Prehliadač Safari od Apple, ktorý bol založený na vykresľovacom engine KHTML Konquerora, ale odvtedy sa oddelil na projekt Webkit tiež nedávno začal s portovaním KSVG2 do WebCore, čím sa začala práca na zaradenie natívnej podpory SVG do Safari.
Prehliadače založené na vykresľovacom engine  WebKit  ako sú  Safari od Apple, Google Chrome a ďalšie.
 Batik SVG Toolkit môžu používať Java programy na vykresľovanie, tvorbu a manipuláciu s SVG grafikou.
 SVG Salamander je otvorená alternatíva k Batik pre Javu.

Mobilná podpora 
Na mobilných zariadeniach sú najpopulárnejšie implementácie pre mobilné telefóny od Ikivo a Bitflash, kým pre PDA existujú implementácie Bitflash a Intesis. Zaniknutý Macromedia Flash Lite od zaniknutej Macromedie mal voliteľnú podporu SVG Tiny od verzie 1.1. Na konferencii SVGOpen 2005 demonštroval Sun mobilnú implementáciu SVG Tiny 1.1 pre platformu CDLC. TinyLine SVG viewer, napísaný v Jave, je tiež cielený pre mobilné zariadenia.

Tools 
 Inkscape je open source multiplatformový vektorový editor, ktorý používa SVG ako svoj natívny formát. (Jeho predchodca Sodipodi zanikol v roku 2004).
 Väčšina hlavných editorov vektorovej grafiky vrátane Adobe Illustratora a CorelDRAW podporujú export a import SVG.
 OpenOffice.org Draw 1.1 a vyšší exportuje SVG súbory, pre Draw 2.0, existuje dodatočný import pre import SVG.
 Skencil je open source vektorový editor s importom a exportom SVG.
 SVGmaker patrí medzi aplikácie pre OS Windows schopné tvoriť SVG súbory, ktoré sú široko použiteľné (vrátane dokumentov balíka MS Office).
 Sketsa je proprietárny SVG editor.
 Apache Batik je Java toolkit pre aplikácie alebo applety, ktoré chú používať obrázky vo formáte SVG na rôzne účely ako prehliadanie, tvorba a manipulácia. Batik poskytuje set štandardných modulov ako SVG Parser, SVG Generator a SVG DOM; tiež má aplikáciu na prehliadanie SVG.
 SVG Scene toolkit umožňuje vývojárom vytvoriť aplikačné pohľady zostavením obsahového modelu alebo scény SVG. Scénu je možné súčasne zobrazovať vo viacerých oknách a na viacerých klientoch. Vykresľovanie SVG vykonáva Cairo a Pango, ktoré podporujú rozličné ciele, napr. Windows, OS X, PostScript, Xlib.
 Together, JFreeChart a OptimalJ od Compuware tiež používajú SVG.

Pozri aj 
 Rich Internet Application
 Semantic Web
 2D počítačová grafika
 3D počítačová grafika
 Raster to vector
 List of vector graphics markup languages
 Comparison of vector graphics markup languages
 Comparison of layout engines (graphics)
 - SVG support for the Wikipedia

Externé odkazy 
Oficiálne
 W3C SVG Pages
 SVG.org – SVG Community Website
 SVG Wiki – Wiki of SVG information for developers
 SVGX

Demá
 Adobe SVG Demos
 Mozilla SVG Demos
 SVG mapping examples, tutorials and shp2svg converter
 Sample SVG files created from popular programs
 SVG pad

Softvér
 Inkscape – SVG editor s otvoreným zdrojovým kódom
 Adobe SVG Plugin
 Mozilla SVG
 Past, Present, and Future of Mozilla SVG
 Implementing SVG in a Web Browser
 ksvg SVG renderer for KDE/khtml
 Sketsa – SVG Graphics Editor
 BitFlash – SVGT Player
 Convert files to SVG format

Knižnice
 SVG Salamander – Java SVG player and renderer. (LGPL)
 librsvg SVG renderer for GNOME, and Mozilla/Firebird plugin
 SVG Perl module

Tutoriály
 Pike's SVG Tutorial
 SVGBasics
 about-svg.de
 SVG Authoring Guidelines

Články
 Math Games: Vector vs Raster (maa.org) – zoznam 31 SVG editorov 
 SVG Open, annual international conference on Scalable Vector Graphics
 SVG: A Sure Bet 
 SVG Is The Future 
 Descriptions from Webreference
 Discussion about free implementations
 The future of SVG 
 Magical pictures 

SVG clipart
 Open Clip Art Library
 Sodipodi Clipart Page
 GNOME themes extras package
 Crystal Icons
 Gartoon Icons Theme
 BlueSphere Icon Theme

Značkovacie jazyky
Štandardy založené na XML
XML
W3C štandardy
Grafické súborové formáty
Vektorová grafika