SVG

Az oldal jelenlegi verzióját még nem ellenőrizték tapasztalt közreműködők, és jelentősen eltérhet a 2019. január 21-én felülvizsgált verziótól ; az ellenőrzések 25 szerkesztést igényelnek .
Méretezhető vektorgrafika
Kiterjesztés .svgvagy.svgz
MIME típusú image/svg+xml
Fejlesztő World Wide Web Consortium
Legutolsó kiadás SVG Tiny 1.2
SVG 1.1 (második kiadás)
SVG 2
Formátum típusa vektoros grafika
Kibontva innen XML
nyílt formátum ? Igen
Weboldal w3.org/Graphics/SVG/svgwg.org_
_
 Médiafájlok a Wikimedia Commons oldalon

Az SVG (az angol  S calable V ector G raphics  - scalable vector graphics szóból ) egy méretezhető vektorgrafikus jelölőnyelv , amelyet a World Wide Web Consortium (W3C) hozott létre, és amely az XML kiterjeszthető jelölőnyelv egy részhalmazában található , és a két- dimenziós vektor és vegyes vektor / raszterdiagramok XML formátumban. Támogatja mind az álló, mind az animált interaktív grafikát – vagy más szóval, deklaratív és scripted. Nem támogatja a háromdimenziós objektumok leírását (nem tévesztendő össze a chiaroscuro háromdimenziós szimulációjával). Ez egy nyílt szabvány, amelyet a W3C ajánl, amely olyan szabványok mögött áll, mint a HTML és az XHTML . Az SVG a VML és PGML jelölőnyelveken alapul . 1999 óta fejlesztik. 2001-ben megjelent az 1.0-s verzió, 2011-ben az 1.1-es verzió, amely a mai napig aktuális. A 2-es verzió jelenleg aktív fejlesztés alatt áll.

Nyelvi funkciók

<útvonal kitöltése= "nincs" stroke= "fekete" d= "M 228 238 L 328 90 L 346 250 L 201 124 L 410 150 L 228 238" />
  • Alapvető geometriai formák leírása (sokszögek, téglalapok, körök stb.).
  • A formákra és pályákra alkalmazható vizuális tulajdonságok széles skálája: színezés, átlátszóság, lekerekített sarkok stb.
  • Interaktivitás . Minden egyes elemre és a teljes képre felakaszthatunk egy eseménykezelőt (kattintás, mozgatás, billentyűleütés stb.), így a felhasználó vezérelheti a képet (például mozgathat egyes elemeket az egérrel [1] ).
  • Animáció és forgatókönyvek. Az ECMAScript vagy a JavaScript használatával még az alakzatok koordinátáinak és arányainak matematikai számításaival kapcsolatos legbonyolultabb forgatókönyveket is leírhatja. Az interaktivitással és a SMIL animációval együtt ez nagyon széles lehetőségeket biztosít a webgrafikus fejlesztők számára.

szerkesztés

  • Szövegformátum – Az SVG-fájlok olvashatók és szerkeszthetők (bizonyos készségekkel) általános szövegszerkesztőkkel . Az SVG grafikát tartalmazó dokumentumok megtekintésekor hozzáférhet a megtekintett fájl kódjának megtekintéséhez és a teljes dokumentum mentéséhez. Ezenkívül az SVG-fájlok általában kisebbek, mint a hasonló JPEG- vagy GIF -képek , és jól tömöríthetők.
  • A Scalable - SVG egy vektoros formátum . Lehetőség van az SVG-kép bármely részének nagyítására a minőség elvesztése nélkül. Ezenkívül lehetőség van szűrők alkalmazására az SVG-dokumentumok elemeire - speciális módosítók a bittérképes képek feldolgozásakor használt effektusokhoz hasonló effektusok létrehozásához (elmosás, kihúzás, összetett transzformációs rendszerek stb.). Az SVG kód szövegében a szűrőket a megjelenítő által megjelenített címkék írják le, ami nem befolyásolja a forrásfájl méretét, miközben biztosítja a szükséges szemléltető kifejezőerőt.
  • A bittérképes grafika használata az SVG dokumentumokban széles körben elérhető. PNG, GIF vagy JPG képeket tartalmazó elemeket szúrhat be.
  • Az SVG-grafikák szövege szöveg, nem kép, így kijelölhető és másolható, a keresőmotorok indexelik, és nincs szükség további metafájlok létrehozására a keresőrobotok számára .
  • Az animációt SVG-ben valósítják meg a szintén a W3C konzorcium által kifejlesztett SMIL (Synchronized Multimedia Integration Language) nyelv használatával. Az ECMAScript specifikáción alapuló szkriptnyelvek támogatottak . Az SVG elemek manipulálhatók JavaScript segítségével . A szkriptek és animációk használata az SVG-ben lehetővé teszi dinamikus és interaktív grafikák létrehozását. Az SVG-ben egy eseménymodellt biztosítanak, az eseményeket nyomon követik ( oldal betöltése, paramétereinek megváltoztatása, egér, billentyűzet események stb. ). Az animációt kiválthatja egy adott esemény (például "onmouseover" vagy "onclick" ), ami interaktívvá teszi a grafikát. Minden elemnek megvannak a saját eseményei, amelyekhez egyedi szkriptek kapcsolhatók.
  • Az SVG nyílt szabvány. Más formátumokkal ellentétben az SVG nem védett.
  • Az SVG dokumentumok könnyen integrálhatók HTML és XHTML dokumentumokba. A külső SVG-k az <object> címkén keresztül csatlakoznak, az adatattribútum értéke az SVG jelölést tartalmazó ".svg" kiterjesztésű és MIME típusú image/svg+xml fájl neve. A szélesség és magasság attribútumok határozzák meg az SVG régió vízszintes és függőleges méreteit. Az SVG elemek kompatibilisek a HTML-lel és a DHTML-lel.
  • Kompatibilitás a CSS -szel ( angol  lépcsőzetes stíluslapok ). Az SVG elemek megjelenítése (formázása és díszítése) vezérelhető a CSS 2.0 stíluslapon és annak kiterjesztésein keresztül, vagy közvetlenül az SVG elem attribútumokon keresztül.
  • Az SVG az XML minden előnyét biztosítja :
    • Különböző környezetekben való munkavégzés képessége.
    • Nemzetköziesítés ( Unicode támogatása ).
    • Széles körű elérhetőség különféle alkalmazásokhoz.
    • Könnyű módosítás szabványos API -kkal  , például DOM -mal . Az SVG támogatja a szabványos W3C dokumentumobjektum-modellt DOM, amely hozzáférést biztosít bármely elemhez, ami bőséges lehetőséget ad az elemek, attribútumok és események dinamikus megváltoztatására.
    • Könnyű konvertálás az XSLT stíluslapokkal . Mint minden XML-alapú formátum, az SVG is lehetővé teszi transzformációs táblák (XSLT) használatát a feldolgozásához. Az XML-adatok egyszerű XSL használatával SVG-vé konvertálásával könnyedén grafikusan megjelenítheti bármely adatot, például megjelenítheti a CML -ben leírt kémiai molekulákat .

A formátum hátrányai

  • A 3D grafikát egyáltalán nem támogatja
  • Az SVG örökli az XML minden hátrányát , például a nagy fájlméretet (utóbbit azonban kompenzálja a tömörített SVGZ formátum megléte , de használata jelenleg nehézkes, mivel az SVGZ-nek nincs saját MIME típusa ).
  • Nagy leképezési alkalmazásokban nehéz használni, mivel a dokumentumot teljes egészében el kell olvasni a kép egy kis részének helyes megjelenítéséhez.
  • Minél több finom részlet van a képen, annál gyorsabban növekszik az SVG adatok mérete. Extrém eset az, amikor a kép fehér zaj . Ebben az esetben az SVG nemcsak hogy nem kínál fájlméret-előnyt, de még veszteséget is jelent a bitmap formátumhoz képest. A gyakorlatban az SVG már jóval azelőtt veszteségessé válik, hogy a kép elérné a fehér zaj szintjét.

Egy SVG dokumentum szerkezete

Az első sor egy szabványos XML fejléc, egy deklaráció ( eng.  XML deklaráció ), amely jelzi az XML verzióját (verzió) ( általában "1.0" ) és a karakterkódolást (kódolás):

<?xml version="1.0" encoding="UTF-8" standalone="no"?>

A második és harmadik sornak tartalmaznia kell a DOCTYPE fejlécet , amely meghatározza a dokumentum típusát ( Dokumentumtípus - definíciók ) DTD : 

<!DOCTYPE svg NYILVÁNOS "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">

Sajnos bizonyos esetekben a Mozilla Firefox beépített SVG megjelenítővel történő használatakor a DOCTYPE deklaráció tartalma hibaforrás lehet. Javasoljuk, hogy ne használja a DOCTYPE deklarációt az SVG 1.0-s verziójában. Ehelyett ajánlatos a baseProfile attribútumot a gyökér <svg> elemen szerepeltetni "full" [2] értékkel .

Ha valamilyen oknál fogva DOCTYPE deklaráció szükséges egy dokumentumban, akkor ajánlatos üres deklarációt használni, mint a példában.

<!DOCTYPE svg [ <!-- az Ön adatai --> ]>

A negyedik sor a dokumentum gyökéreleme az SVG névtérrel .

<svg version= "1.1" baseProfile= "full" xmlns= "http://www.w3.org/2000/svg" xmlns:xlink= "http://www.w3.org/1999/xlink" xmlns: ev= "http://www.w3.org/2001/xml-events" width= "100%" height= "100%" >

Ezután következik a dokumentum többi szövege, a gyökérelembe ágyazva, ahol a kódolt jelenet tartalmát leíró elemek ténylegesen találhatók.

A dokumentum mindig a záró gyökércímkével végződik </svg>.

Példák

  • Egy egyszerű statikus SVG-dokumentum 400 px -es négyzetkörvonallal és három 104 px-es félig átlátszó körrel a négyzet közepén, mindegyik kör körülbelül fél sugárral el van tolva a négyzet közepétől.
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <svg version = "1.1" baseProfile= "full" xmlns = "http://www.w3.org/2000/svg " xmlns:xlink = "http://www.w3.org/1999/xlink" xmlns:ev = "http://www.w3.org/2001/xml-events" height = "400px" width = "400px " > <rect x= "0" y= "0" width= "400" height= "400" fill= "nincs" stroke= "black" stroke-width= "5px" stroke-opacity= "0,5" /> <g fill-opacity= "0.6" stroke= "black" stroke-width= "0.5px" > <circle cx= "200px" cy= "200px" r= "104px" fill= "red" transform= "translate( 0,-52)" /> <circle cx= "200px" cy= "200px" r= "104px" fill= "blue" transform= "fordítás( 60, 52)" /> <circle cx= "200px" cy = "200px" r= "104px" fill= "green" transform= "translate(-60, 52)" /> </g> </svg>

Megjegyzés: Ez a kód ugyanúgy fut a Mozilla Firefox 2.0.0.11 és az Internet Explorer 6.0.2900.2180 (SVG Document Adobe Systems Inc.) böngészőben.

  • Egy másik példa egy lekerekített sarkú téglalap, amely kitölti a teljes megjelenítési területet:
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <!DOCTYPE svg NYILVÁNOS "-//W3C//DTD SVG 1.1//EN" "http://www.w3. org/Graphics/SVG/1.1/DTD/svg11.dtd"> <svg version= "1.1" baseProfile= "full" xmlns= "http://www.w3.org/2000/svg" xmlns:xlink= "http ://www.w3.org/1999/xlink" xmlns:ev= "http://www.w3.org/2001/xml-events" width= "100%" height= "100%" > <helyes kitöltés = "fehér" x= "0" y= "0" szélesség = "100%" magasság = "100%" /> <rect fill= "ezüst" x= "0" y= "0" szélesség = "100%" " height= "100%" rx= "1em" /> </svg>
  • sárga csillag:
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <svg width= "198" height= "188" viewBox= "0 0 198 188" version= "1.1" baseProfile= " full" xmlns= "http://www.w3.org/2000/svg" xmlns:xlink= "http://www.w3.org/1999/xlink" xmlns:ev= "http://www.w3 .org/2001/xml-events" > <g id= "Oldal-1" stroke= "nincs" stroke-width= "1" fill= "nincs" fill-rule= "páros-páratlan" > <poligon azonosító= "Csillag-1" stroke= "#979797" stroke-width= "3" fill= "#F8E81C" pontok = "99 154 40 185 51 119 4 73 69 64 99 3 128 64 194 73 147 < 819 " /polygon> </g> </svg>

SVGZ

Mivel az SVG-kód elég sok helyet foglal el, létrejött egy SVGZ "burkoló", ahol az SVG-t gzip -pel tömörítik, és a kapott fájl a ".svgz" kiterjesztést kapja.

Az SVG jól tömörít , mert egy szabályos szerkezetű XML szöveges dokumentum.

Böngésző támogatás

böngésző változat
internet böngésző 9+ [3]
Mozilla Firefox 1,5+ [4]
Netscape Navigator 9,0+
Google Chrome 3.0+
szafari 4.0+
Opera 8.0+

A szabvány specifikációi

Szoftver

Alkalmazások

Eszközök és könyvtárak

  • A Batik  egy Java -könyvtár SVG formátumú képek generálására, megjelenítésére és különféle manipulálására, valamint egy ezen a könyvtáron alapuló SVG böngésző - Squiggle [5] .
  • A MetaPost  egy programozási nyelv, amelyet grafikus illusztrációk készítésére használnak.
  • A librsvg  egy könyvtár, amelyet a MediaWiki használ az SVG-kkel való együttműködéshez [6] [7] .
  • Az SVG Viewer Extension for Windows Explorer a Windows Intéző kiterjesztése  , amely lehetővé teszi az SVG-fájlok bélyegképként való megtekintését.
  • A Snap  egy JavaScript-könyvtár az  SVG-vel való munkához.
  • SVG.js – Könnyű könyvtár az SVG-grafikák manipulálásához és animálásához, nincs függősége, és célja, hogy a lehető legkisebb legyen.

Jegyzetek

  1. Példa egy oldalra, amely lehetővé teszi SVG létrehozását és szerkesztését a böngészőben Archiválva : 2010. május 19. a Wayback Machine -nél  (orosz)
  2. SVG készítési irányelvek: ne tartalmazzon DOCTYPE nyilatkozatot . Archiválva : 2008. április 14. a Wayback Machine -nél 
  3. A Windows Internet Explorer platform előzetes verziójának kibocsátási megjegyzései archiválva : 2010. április 19.  (Angol)
  4. Brockmeier, Joe . Áttekintés: Firefox 1.5 és Thunderbird 1.5  , Linux.com (  2005. november 30.). Letöltve: 2009. november 30.
  5. Squiggle archiválva : 2009. november 7. a Wayback Machine -nél .
  6. Kézikönyv: Képkezelés – MediaWiki archiválva : 2008. november 18. a Wayback Machine -nél 
  7. A MediaWiki alapértelmezett disztribúciója azonban az ImageMagick-kel érkezik, ami hibákat okoz az SVG-ből PNG-be való átalakítás során, például érvénytelen kereteket és nem átlátszó hátteret a létrejövő PNG-fájlban. Kiküszöbölve a következővel: $wgSVGConverter = 'rsvg'.

Linkek

Irodalom