Artikel top billede

HTML5-udvikling: Sådan fungerer SVG i browserne

En serie artikler giver dig overblikket over, hvordan HTML5 fungerer i browserne Chrome, Firefox, Internet Explorer, Opera og Safari. Her handler det om SVG-grafik.

Læs også:

Her er de vigtigste funktioner i det nye HTML5

Sådan fungerer canvas-tag'et

Sådan fungerer video og lyd

Sådan fungerer WebGL

Som nævnt i canvas-afsnittet blev WWW bygget på den idé, at dataene skulle leveres i et enkelt format og så vises eller fortolkes af en lokal computer.

Formatet scalable vector graphics (SVG) blev opfundet til at oversætte almindelig ASCII-tekst til grafiske former. De første komitemøder fandt sted i 1999, men det hårde arbejde er nu endelig ved at bære frugt.

Nu, hvor Microsoft tilføjer understøttelse af SVG i IE9, vil stort set alle de større browsere også understøtte formatet.

Målet med SVG-formatet er at give browsere den samme slags præcision i specificeringen af en tegning, som PostScript gav i forhold til udskrift af dokumenter.

I stedet for at rendere objekter ved at specificere pixels, så er tegningen lavet af linjer og former, som er defineret af tags som det herunder, der producerer en cirkel med en radius på 40 pixels:

circle cx="100" cy="50" r="40" stroke="black" stroke-width="2" fill="red"

Resultaterne er fantastisk godt egnede til linjetegninger, fordi browseren kan skabe et billede, der er tilpasset skærmens opløsning. Brugeren kan zoome ind og ud og computerens grafikprocessor renderer resultatet.

Videoer og spil lavet af animerede sprites er lette at specificere og levere, fordi de kan være så små. Selvom alle tag'ene og deres mange attributter gør formatet vanvittigt ordrigt, så kan grundlæggende gzip-kompression fjerne 80 procent af dette syntaktiske spæklag. SVGZ-filer er forudkomprimerede.

Stadig et stykke vej igen

Betyder Microsofts ankomst til festen, at alle nu taler samme sprog? Selvfølgelig ikke. Mobilproducenter, der var bekymrede over at spilde batterilevetid på overpyntede SVG-panoramaer, opfandt to underformater: SVGB (SVG Basic) og SVGT (SVG Tiny).

De har skilt sig af med et antal funktioner, der sandsynligvis alligevel ikke gør megen nytte på de små mobilskærme, såsom muligheden for at specificere dimensioner i andre værdier end pixels. Det betyder ingen brug af pica eller millimeter, og SVGT tillader kun solide farveudfyldninger.

Der er også mange forskelle i desktop-implementeringen af browserne. Mens de alle efter sigende implementerer kerneversionen af SVG, så er der visse udviklere, der eksperimenterer med at kunne gøre endnu mere med den fleksible standard.

Nogen har eksempelvis tilføjet et nyt animate-tag, der beskriver en sti, som objekter kan bevæge sig ad. Når objekterne er tegnet, kan SVG-enginen udregne en ny placering for dem og så tegne dem igen.

Al den samme matematik og tag-infrastruktur til tegning af linjerne kan genbruges til at plotte den sti, som objekterne skal følge.

På nuværende tidspunkt understøtter Gecko- og WebKit-browsere denne funktion, mens IE9 ikke er kommet med på vognen endnu.

En anden plan er at lade browseren påføre alle SVG-effekterne såsom filtre og masker til ethvert arbitrært stykke HTML. Mozilla var først til at implementere denne tilgang og lavede et udkast til SVG-effekter til CSS, som HTML-holdet kunne overveje.

De andre browsere har nogen understøttelse, som dog udbredt anses for at være mere fejlfyldt - og inkonsistent med den måde, som idéen er implementeret i Firefox. Der bør dog ikke overraske nogen, da det var de samme folk hos Mozilla, der både skrev koden og specifikationen.

SVG-skrifttyper

Et tredje område med inkonsistens findes i implementeringen af SVG-skrifttyper. Til forskel fra PostScript gør den grundlæggende version af SVG det ikke let at lave ethvert arbitrært mønster af linjer om til et skrifttegn.

WebKit-browserne har grundlæggende understøttelse af SVG-skrifttyper, så det er lettere at tilføje ord til SVG-tegninger. IE og Gecko arbejder stadig på det.

Visse browsere har også taget en anden potentiel udvidelse til sig. Efter at have lavet de renderings-engines, der producerer uendeligt skarpe billeder end uendelig præcision, tog visse SVG-brugere et skridt tilbage og besluttede, at billederne måske ville være lidt lækrere, hvis de kunne være en smule mere slørede. (Nogle mennesker bliver bare aldrig tilfredse.)

I hvert fald tilbyder Chrome, Opera og Firefox SVG-filtre, der udjævner nærliggende pixels for at skabe blødere, pænere og ofte bizarre effekter, der ikke er lige så kolde og skarpe som de rene linjetegninger.

Min hurtige SVG-test giver dig en nem måde at kontrollere din browsers evne til at vise både indlejrede og indrammede SVG-tags.

Andre M. Winter har skabt en god samling af SVG-eksempler og -test, der viser mange af de måder, hvorpå folk eksperimenterer med den grundlæggende SVG-standard samt adskillige af de foreslåede tilføjelser og udvidelser.

Indbygget understøttelse af SVG i aktuelle og fremtidige browsere:

Læs også:

Her er de vigtigste funktioner i det nye HTML5

Sådan fungerer canvas-tag'et

Sådan fungerer video og lyd

Sådan fungerer WebGL




Brancheguiden
Brancheguide logo
Opdateres dagligt:
Den største og
mest komplette
oversigt
over danske
it-virksomheder
Hvad kan de? Hvor store er de? Hvor bor de?
Targit A/S
Udvikling og salg af software til business intelligence.

Nøgletal og mere info om virksomheden
Skal din virksomhed med i Guiden? Klik her

Kommende events
Sådan bruger du aktivt AI til at styrke din cybersikkerhedsindsats

Kan AI styrke din cybersikkerhed og forebygge f.eks. ransomwareangreb? Ja – og endda særdeles effektivt! På denne konference kan du blive klogere på, hvordan du i praksis anvender AI til at styrke dit sikkerhedsniveau – og gøre cyberbeskyttelsen mere fleksibel.

27. november 2024 | Læs mere


Styrk din virksomhed med relevant, pålidelig og ansvarlig AI integration med SAP

Kom og få indsigt i, hvordan du bruger AI til at transformere og effektivisere dine arbejdsgange. Vi kigger nærmere på AI-assistenten Joule, der vil revolutionere måden, brugerne interagere med SAP’s forretningssystemer. Og så får du konkret viden om, hvordan du kommer i gang med at bruge AI til at booste din forretningsudvikling.

03. december 2024 | Læs mere


Fyr op under vækst med dataanalyse, AI og innovation

Hvor langt er den datadrevne virksomhed nået i praksis? Det kan du høre om fra virksomheder, som har foretaget transformationen. Du kommer også til at høre, hvordan de anvender AI i processen, hvilke mål de har nået, hvordan de har høstet gevinsterne og hvilke nyskabelser, der er på vej i horisonten.

04. december 2024 | Læs mere