SVG

Kokeneet kirjoittajat eivät ole vielä tarkistaneet sivun nykyistä versiota, ja se voi poiketa merkittävästi 21. tammikuuta 2019 tarkistetusta versiosta . tarkastukset vaativat 25 muokkausta .
Skaalautuva vektorigrafiikka
Laajennus .svgtai.svgz
MIME -tyyppinen kuva/svg+xml
Kehittäjä World Wide Web Consortium
Viimeisin julkaisu SVG Tiny 1.2
SVG 1.1 (Second Edition)
SVG 2
Muototyyppi Vektorigrafiikka
Laajennettu kohteesta XML
avoin muoto ? Joo
Verkkosivusto w3.org/Graphics/SVG/svgwg.org
_
 Mediatiedostot Wikimedia Commonsissa

SVG ( englannin  kielestä S calable Vector G raphics  - scalable vector graphics ) on skaalautuva vektorigrafiikkakuvauskieli, jonka on luonut World Wide Web Consortium (W3C) ja joka sisältyy laajennettavan merkintäkielen XML -alajoukkoon, joka on suunniteltu kuvaamaan kaksiulotteisia vektori- ja sekoitettu vektori-/ rasterigrafiikka XML-muodossa. Tukee sekä still- että animoitua interaktiivista grafiikkaa - tai toisin sanoen deklaratiivista ja käsikirjoitettua. Ei tue kuvauksia kolmiulotteisista kohteista (ei pidä sekoittaa chiaroscuron kolmiulotteisuuden simulaatioon). Se on avoin standardi, jota suosittelee W3C, HTML- ja XHTML -standardien taustalla oleva organisaatio . SVG perustuu VML- ja PGML -kuvauskieliin . Kehitetty vuodesta 1999 lähtien. Vuonna 2001 julkaistiin versio 1.0, vuonna 2011 - versio 1.1, joka on edelleen ajankohtainen. Versio 2 on parhaillaan kehitteillä.

Kieliominaisuudet

<polun täyttö= "ei mitään" viiva = "musta" d= "M 228 238 L 328 90 L 346 250 L 201 124 L 410 150 L 228 238" />
  • Geometristen perusmuotojen kuvaus (monikulmiot, suorakulmiot, ympyrät jne.).
  • Laaja valikoima visuaalisia ominaisuuksia, joita voidaan soveltaa muotoihin ja polkuihin: väritys, läpinäkyvyys, pyöristetyt kulmat jne.
  • Interaktiivisuus . Jokaiseen yksittäiseen elementtiin ja koko kuvaan voidaan ripustaa tapahtumakäsittelijä (napsautus, siirto, näppäinpainallus jne.), jolloin käyttäjä voi ohjata kuvaa (esimerkiksi siirtää joitakin elementtejä hiirellä [1] ).
  • Animaatio ja käsikirjoitukset. ECMAScriptin tai JavaScriptin avulla voit kuvata monimutkaisimmatkin skenaariot, jotka liittyvät muotojen koordinaattien ja mittasuhteiden matemaattisiin laskelmiin. Yhdessä interaktiivisuuden ja SMIL -animaatioiden kanssa tämä antaa erittäin laajan valikoiman mahdollisuuksia verkkografiikan kehittäjille.

Edut

  • Tekstimuoto - SVG-tiedostoja voidaan lukea ja muokata (joillakin taidoilla) yleisillä tekstieditoreilla . Kun tarkastelet SVG-grafiikkaa sisältäviä asiakirjoja, voit tarkastella tarkasteltavan tiedoston koodia ja tallentaa koko asiakirjan. Lisäksi SVG-tiedostot ovat yleensä pienempiä kuin vastaavat JPEG- tai GIF -kuvat ja pakataan hyvin.
  • Skaalautuva - SVG on vektorimuoto . On mahdollista suurentaa mitä tahansa osaa SVG-kuvasta laadun heikkenemättä. Lisäksi on mahdollista käyttää suodattimia SVG-dokumentin elementteihin - erityisiä modifikaatioita, joilla luodaan samanlaisia ​​tehosteita kuin bittikarttakuvien käsittelyssä (sumentaminen, pursotus, monimutkaiset muunnosjärjestelmät jne.). SVG-koodin tekstissä suodattimet kuvataan tunnisteilla, jotka katsoja renderöi, mikä ei vaikuta lähdetiedoston kokoon, mutta tarjoaa tarvittavan havainnollisen ilmaisukyvyn.
  • Bittikarttagrafiikan käyttö SVG-dokumenteissa on laajalti saatavilla. Voit lisätä elementtejä, joissa on PNG-, GIF- tai JPG-kuvia.
  • SVG-grafiikan teksti on tekstiä, ei kuvaa, joten se voidaan valita ja kopioida, hakukoneet indeksoivat sen, eikä hakuroboteille tarvitse luoda ylimääräisiä metatiedostoja .
  • Animaatio on toteutettu SVG:ssä käyttämällä SMIL - kieltä (Synchronized Multimedia Integration Language), jota myös W3C-konsortio on kehittänyt. ECMAScript -määritykseen perustuvia komentosarjakieliä tuetaan . SVG - elementtejä voidaan käsitellä JavaScriptillä . Skriptien ja animaatioiden käyttö SVG:ssä mahdollistaa dynaamisen ja interaktiivisen grafiikan luomisen. SVG:ssä tarjotaan tapahtumamalli, tapahtumia seurataan ( sivun lataus, sen parametrien muuttaminen, hiiri, näppäimistötapahtumat jne. ). Animaation voi laukaista tietty tapahtuma (esimerkiksi "onmouseover" tai "onclick" ), mikä tekee grafiikasta vuorovaikutteisen. Jokaisella elementillä on omat tapahtumansa, joihin voidaan liittää yksittäisiä skriptejä.
  • SVG on avoin standardi. Toisin kuin jotkin muut tiedostomuodot, SVG ei ole patentoitu.
  • SVG-asiakirjat on helppo integroida HTML- ja XHTML-dokumentteihin. Ulkoiset SVG:t yhdistetään <object>-tunnisteen kautta , data-attribuutin arvo on SVG-merkinnän sisältävän tiedoston nimi, jonka pääte on ".svg" ja jossa on MIME-tyyppinen image/svg+xml. Leveys- ja korkeusmääritteet määrittävät SVG-alueen vaaka- ja pystymitat. SVG-elementit ovat yhteensopivia HTML:n ja DHTML:n kanssa.
  • Yhteensopivuus CSS :n kanssa ( Englannin  Cascading Style Sheets ). SVG-elementtien näyttöä (muotoilua ja koristelua) voidaan ohjata CSS 2.0 -tyylitaulukon ja sen laajennuksien kautta tai suoraan SVG-elementtiattribuuttien kautta.
  • SVG tarjoaa kaikki XML : n edut :
    • Kykyä työskennellä erilaisissa ympäristöissä.
    • Kansainvälistyminen (tuki Unicodelle ).
    • Laaja saatavuus erilaisiin sovelluksiin.
    • Helppo muokata standardisovellusliittymien ,  kuten DOM :n, kautta . SVG tukee standardoitua W3C-dokumenttiobjektimallia DOM, joka tarjoaa pääsyn mihin tahansa elementtiin, mikä antaa runsaasti mahdollisuuksia muuttaa elementtejä, niiden ominaisuuksia ja tapahtumia dynaamisesti.
    • Helppo muuntaminen XSLT-tyylitaulukoilla . Kuten mikä tahansa XML-pohjainen muoto, SVG mahdollistaa muunnostaulukoiden (XSLT) käsittelyn sen käsittelemiseen. Muuntamalla XML-tiedot SVG:ksi yksinkertaisella XSL :llä voit helposti saada graafisen esityksen mistä tahansa tiedosta, esimerkiksi visualisoida CML :ssä kuvatut kemialliset molekyylit .

Muodin haitat

  • 3D-grafiikkaa ei tueta ollenkaan
  • SVG perii kaikki XML :n haitat , kuten suuren tiedostokoon (jälkimmäisen kuitenkin kompensoi pakatun SVGZ- muodon olemassaolo , mutta sen käyttö on tällä hetkellä vaikeaa, koska SVGZ:llä ei ole omaa MIME-tyyppiä ).
  • Vaikea käyttää suurissa kartoitussovelluksissa, koska asiakirja on luettava kokonaisuudessaan, jotta pieni osa kuvasta näkyy oikein.
  • Mitä enemmän hienoja yksityiskohtia kuvassa on, sitä nopeammin SVG-tietojen koko kasvaa. Äärimmäinen tapaus on, kun kuvassa on valkoista kohinaa . Tässä tapauksessa SVG ei vain tarjoa tiedostokokoetua, vaan jopa menetyksen verrattuna bittikarttamuotoon. Käytännössä SVG:stä tulee kannattamaton kauan ennen kuin kuva saavuttaa valkoisen kohinan tason.

SVG-dokumentin rakenne

Ensimmäinen rivi on tavallinen XML-otsikko, ilmoitus ( eng.  XML-ilmoitus ), joka osoittaa XML-version (version) ( yleensä "1.0" ) ja merkkikoodauksen (koodaus):

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

Toisella ja kolmannella rivillä tulee olla DOCTYPE -otsikko , joka määrittää asiakirjan tyypin ( Dokumenttityypin määritelmät ) DTD : 

<!DOCTYPE svg JULKINEN "-//W3C//DTD SVG 1.1//FI" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">

Valitettavasti joissakin tapauksissa, kun käytät Mozilla Firefoxia sisäänrakennetun SVG-katseluohjelman kanssa, DOCTYPE-ilmoituksen sisältö voi aiheuttaa virheitä. On suositeltavaa olla käyttämättä DOCTYPE-ilmoitusta SVG-versioissa 1.0. Sen sijaan on suositeltavaa sisällyttää baseProfile- attribuutti juurielementtiin <svg> arvolla "full" [2] .

Jos jostain syystä dokumenttiin vaaditaan DOCTYPE-ilmoitus, on suositeltavaa käyttää tyhjää ilmoitusta, kuten esimerkissä.

<!DOCTYPE svg [ <!-- tietosi --> ]>

Neljäs rivi on SVG - nimiavaruuden sisältävän asiakirjan juurielementti .

<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%" >

Seuraavaksi tulee loput dokumentin tekstistä, joka on sisäkkäinen juurielementissä, jossa koodatun kohtauksen sisältöä kuvaavat elementit todella sijaitsevat.

Dokumentti päättyy aina sulkevaan juuritunnisteeseen </svg>.

Esimerkkejä

  • Yksinkertainen staattinen SVG-dokumentti, jossa on 400 pikselin neliöääriviiva ja kolme 104 px puoliläpinäkyvää ympyrää neliön keskellä, jokainen ympyrä siirtynyt neliön keskustasta noin puolen säteen verran.
<?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" " > <rekt x= "0" y= "0" leveys= "400" korkeus= "400" fill= "ei mitään" viiva= "musta" viivan leveys= "5px" viivan läpinäkymättömyys = "0,5" /> <g fill-opacity= "0.6" stroke= "black" stroke-width= "0.5px" > <circle cx= "200px" cy= "200px" r= "104px" fill= "red" transform= "käännä( 0,-52)" /> <circle cx= "200px" cy= "200px" r= "104px" fill= "blue" transform= "käännä(60,52)" /> <circle cx= "200px" cy = "200px" r= "104px" fill= "green" transform= "käännä(-60, 52)" /> </g> </svg>

Huomautus: Tämä koodi toimii samalla tavalla Mozilla Firefox 2.0.0.11:ssä ja Internet Explorerissa 6.0.2900.2180 (SVG Document Adobe Systems Inc.)

  • Toinen esimerkki on suorakulmio, jossa on pyöristetyt kulmat ja joka täyttää koko näyttöalueen:
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <!DOCTYPE svg JULKINEN "-//W3C//DTD SVG 1.1//FI" "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%" > <oikea täyttö = "valkoinen" x= "0" y= "0" leveys = "100%" korkeus = "100%" /> <suora täyttö= "hopea" x= "0" y= "0" leveys= "100%" " height= "100%" rx= "1em" /> </svg>
  • keltainen tähti:
<?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= "Sivu-1" stroke= "ei mitään" viiva-leveys= "1" fill= "ei mitään" fill-rule= "parillinen" > <polygonin tunnus= "Tähti-1" veto = "# 979797 " viivan leveys= "3" täyttö= "#F8E81C" pisteet = "99 154 40 185 51 119 4 73 69 64 99 3 128 64 194 73 147 8 < 119 " /polygon> </g> </svg>

SVGZ

Koska SVG-koodi vie melko paljon tilaa, luotiin SVGZ "kääre", jossa SVG pakataan gzip :llä ja tuloksena olevalle tiedostolle annetaan tunniste ".svgz".

SVG pakkaa hyvin, koska se on XML - tekstiasiakirja , jolla on tavallinen rakenne.

Selaimen tuki

selain versio
Internet Explorer 9+ [3]
Mozilla Firefox 1,5+ [4]
Netscape Navigator 9.0+
Google Chrome 3.0+
safari 4.0+
Ooppera 8.0+

Standardin tekniset tiedot

Ohjelmisto

Sovellukset

Työkalut ja kirjastot

  • Batik  on Java -kirjasto SVG-muotoisten kuvien luomiseen, hahmontamiseen ja erilaisiin käsittelyihin ja tähän kirjastoon perustuva SVG-selain - Squiggle [5] .
  • MetaPost  on ohjelmointikieli, jota käytetään graafisten kuvien luomiseen.
  • librsvg  on kirjasto, jota MediaWiki käyttää SVG-tiedostojen kanssa työskentelyyn [6] [7] .
  • SVG Viewer Extension for Windows Explorer on  Windowsin Resurssienhallinnan laajennus, jonka avulla voit tarkastella siinä olevia SVG-tiedostoja pikkukuvina.
  • Snap  on JavaScript-kirjasto  SVG:n kanssa työskentelemiseen.
  • SVG.js - Kevyt kirjasto SVG-grafiikan manipulointiin ja animointiin, ei riippuvuuksia ja pyrkii olemaan mahdollisimman pieni.

Muistiinpanot

  1. Esimerkki sivusta, jolla voit luoda ja muokata SVG:tä selaimessa . Arkistoitu 19. toukokuuta 2010 Wayback Machinessa  (venäjäksi)
  2. SVG-kirjoitusohjeet: Älä sisällytä DOCTYPE-ilmoitusta . Arkistoitu 14. huhtikuuta 2008 Wayback Machinessa 
  3. Windows Internet Explorerin alustan esikatselun julkaisutiedot arkistoitu 19. huhtikuuta 2010.  (Englanti)
  4. Brockmeier, Joe . Tarkastus: Firefox 1.5 ja Thunderbird 1.5  , Linux.com (  30. marraskuuta 2005). Haettu 30. marraskuuta 2009.
  5. Squiggle arkistoitu 7. marraskuuta 2009 Wayback Machinessa .
  6. Manual:Image Administration - MediaWiki arkistoitu 18. marraskuuta 2008 Wayback Machinessa 
  7. MediaWikin oletusjakelun mukana tulee kuitenkin ImageMagick, joka aiheuttaa virheitä SVG:stä PNG-muunnokseen, kuten virheellisiä reunuksia ja läpinäkyvää taustaa ei tuloksena olevassa PNG-tiedostossa. Eliminoitu $wgSVGConverter = 'rsvg'.

Linkit

Kirjallisuus