SVG-vektorgrafik (.svg)

W3C Standard

Skalerbar vektorgrafik (SVG) er et XML-baseret vektorbilledformat til todimensionel grafik med understøttelse af interaktivitet, CSS-styling og animation.

Konverter SVG til PNG

Gratis SVG til PNG-konverter i browseren. Konverter filer med det samme på din enhed.

Komprimér SVG online

Privat - filer forlader aldrig din enhed

Undersøgelse og metadata

Operativsystemer og filanalysatorer identificerer SVG-filer ved at inspicere den indledende binære bytesekvens:

Vælg eller træk filer hertil

Privat - filer forlader aldrig din enhed

eller indsæt Ctrl+V
Privatlivsgaranti uden netværksoverførsel: 0 byte overført til eksterne servere. Al behandling foregik lokalt i browserens sandkasse.

Byte-niveau Header-signatur (Magic Bytes)

Operativsystemer og filanalysatorer identificerer SVG-filer ved at inspicere den indledende binære bytesekvens:

HEX-SIGNATUR (OFFSET 0):

3C 73 76 67

ASCII-REPRÆSENTATION: <svg

Standardisering: W3C Recommendation (SVG 1.1 / SVG 2)

Tekniske specifikationer

ContainerarkitekturXML-baseret dokument med tekstmarkering, der definerer 2D-vektorgeometri
KomprimeringGzip- / Brotli-tekstkomprimering (SVGZ bruger gzip-komprimering)
Byte-rækkefølgeIkke relevant (tekstbaseret tegnstrøm i UTF-8 / UTF-16)
FarverumsRGB, CSS Color Module 4 (Display P3, lab, lch)
Kanaler og strukturVektorformer, Bézier-kurver, typografi og gennemsigtighedsmasker med ubegrænset opløsning
Maks. dimensionerOpløsningsuafhængig (skaleres til enhver visningsflade uden pixelering)
GennemsigtighedFuldt variabel alfagennemsigtighed og CSS-blandingstilstande
Streaming og progressivBrowserens XML-parser understøtter progressiv analyse af tekststrømmen

Teknisk sammenligningsmatrix: SVG sammenlignet med konkurrenterne

Teknisk attributSVG (Aktuel)HTML5 CanvasPDFPNG
GengivelsesmodelVektor-DOM med bevaret tilstandBitmap-lærred med direkte gengivelseFast sidebeholder med bevaret tilstandRastergitter af pixels
Styling og CSSFuldt stilbar via CSS-klasser og variablerKræver genoptegning via JavaScript-canvas-API'etIngen dynamisk CSS-stylingFaste rasterpixler
Uendelig skalerbarhedJa (matematiske vektorkurver)Kræver manuel opløsningsskaleringJa (vektorelementer)Nej (pixelerer ved forstørrelse)
InteraktivitetIndbyggede DOM-hændelser (hover, klik, animationer)Kræver manuel matematik til registrering af klik (hit detection)Statisk dokumentKræver et billedkort eller et canvas

Almindelige korruptionstilstande og hex-gendannelsesvejledning

Browseren viser fejlen XML Parsing Error: uafsluttet token eller tag, der ikke stemmer overens.

Grundlæggende årsag: Fejlbehæftet XML-syntaks, manglende afslutningstags eller ikke-escaped og-tegn ('&' i stedet for '&amp;').

Gendannelse: Validér med en XML-linter (xmllint fil.svg), og ret ubalancerede tags.

Sikkerhedsanalyse og parser-angrebsvektorer

Da SVG er eksekverbar XML, der understøtter '<script>'-tags og eksterne entiteter, udgør formatet betydelige XSS- og SSRF-risici, hvis SVG-filer fra ikke-betroede kilder vises.

Kendte angrebsvektorer

  • Lagret Cross-Site Scripting (XSS) via indlejrede '<script>'-tags eller hændelseshåndterere som 'onload='.
  • XML External Entity (XXE)-angreb, der læser lokale serverfiler, når XML-filer fortolkes på backendservere.
  • XML-entitetsudvidelse ('Billion Laughs'), der forårsager tjenestenægtelse.

Defensive bedste praksisser: Rens altid SVG'er med DOMPurify før indlejring, eller servér dem med 'Content-Security-Policy: default-src 'none'' eller som '<img>'-tags, der automatisk deaktiverer scripts.

Historisk oprindelse og milepæle

2018W3C SVG 2 Candidate Recommendation integrerer moderne CSS-styling.
2011SVG 1.1 (Second Edition) bidrog til at udbrede SVG-understøttelsen i browsere til computere og mobilenheder.
2001W3C udgiver SVG 1.0-specifikationen, der er udviklet ud fra VML- og PGML-forslag.

Vigtige fordele og styrker

  • Uafhængig af opløsning: skarpe linjer og typografi i enhver skærm- eller udskrivningsstørrelse.
  • Ekstremt lille filstørrelse til logoer, ikoner og brugerfladeelementer.
  • Kan fuldt ud styres med scripts og styles via CSS og JavaScript i browserens DOM.

Tekniske begrænsninger og ulemper

  • Uegnet til fotografier eller komplekse billeder med kontinuerlige toner.
  • Komplekse vektorbaner med tusindvis af knudepunkter kan give forsinkelser i CPU-gengivelsen og stort batteriforbrug.
  • XML-formatet tillader indlejrede scripts, så indhold fra ikke-betroede uploads skal renses grundigt før gengivelse.

Interessante tekniske fakta

  • Gzip kan gøre nogle SVG-filer væsentligt mindre; reduktionen afhænger af dokumentets indhold og komprimeringsindstillingerne.
  • viewBox-attributten definerer et abstrakt koordinatlærred, der dynamisk afbildes på fysiske skærmpixels.
  • Tidlige webbrowsere manglede indbyggede SVG-motorer, hvilket fik Adobe til at distribuere browserpluginnet Adobe SVG Viewer, før den indbyggede browserunderstøttelse faldt på plads omkring 2011.

Ofte stillede tekniske spørgsmål

Kan SVG-filer indeholde skadelig kode?

Ja. Da SVG er gyldig XML, kan den indeholde indlejret JavaScript ('<script>'), som køres, hvis SVG'en indlæses direkte i en browser eller åbnes i et '<svg>'-element direkte i dokumentet. Når SVG'er indlæses via et '<img>'-tag, deaktiveres scripts automatisk.

Hvornår skal jeg bruge SVG i stedet for PNG?

Brug SVG til ikoner, logoer, diagrammer, illustrationer og typografi, når skarp skalering på tværs af skærmstørrelser og små filer er vigtig. Brug PNG eller WebP til fotografier.

Hvordan kan jeg optimere store eller komplekse SVG-filer?

Du kan optimere vektorkurver ved at fjerne overflødige metadata, redigeringskommentarer (fra Inkscape eller Illustrator), usynlige grupper og ubrugte navnerumsdeklarationer med værktøjer som SVGO eller ved at komprimere SVG-filen.