Scalable Vector Graphics

right|thumb|Porovnanie bitmapových formátov s formátom SVG.
náhľad|Príklad SVG obrázka.
[vpravo|náhľad|Obrázok [orka vo formáte SVG.]]

**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

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