SVG-vektorgrafikk (.svg)

W3C Standard

Scalable Vector Graphics (SVG) er et XML-basert vektorbildeformat for todimensjonal grafikk med støtte for interaktivitet, CSS-styling og animasjon.

Konverter SVG til PNG

Gratis SVG til PNG-konverterer i nettleseren. Konverter filer umiddelbart på enheten din.

Komprimer SVG på nett

Privat - filer forlater aldri enheten din

Inspeksjon og metadata

Operativsystemer og filanalysatorer identifiserer SVG-filer ved å undersøke den innledende binære bytesekvensen:

Velg eller slipp filer her

Privat - filer forlater aldri enheten din

eller lim inn Ctrl+V
Personverngaranti uten nettverksoverføring: 0 byte ble lastet opp til eksterne servere. All behandling foregikk lokalt i det isolerte nettlesermiljøet ditt.

Filsignatur på bytenivå (magiske byte)

Operativsystemer og filanalysatorer identifiserer SVG-filer ved å undersøke den innledende binære bytesekvensen:

HEX-SIGNATUR (OFFSET 0):

3C 73 76 67

ASCII-REPRESENTASJON: <svg

Standardisering: W3C Recommendation (SVG 1.1 / SVG 2)

Tekniske spesifikasjoner

BeholderarkitekturXML-basert tekstdokument som definerer 2D-vektorgeometri
KomprimeringGzip- / Brotli-tekstkomprimering (SVGZ bruker gzip-komprimering)
BytterekkefølgeIkke aktuelt (tekstbasert UTF-8-/UTF-16-tegnstrøm)
FargeromsRGB, CSS Color Module 4 (Display P3, lab, lch)
Kanaler og strukturUbegrenset oppløsning på vektorformer, bézier-kurver, typografi og opasitetsmasker
Maks. dimensjonerOppløsningsuavhengig (skalerer uendelig til hvilken som helst visningsflate uten pikselering)
GjennomsiktighetFull variabel alfagjennomsiktighet og CSS-blandingmoduser
Strømming og progressiv visningParsing av progressive tekststrømmer støttes av nettleserens XML-parser

Teknisk sammenligningsmatrise: SVG sammenlignet med konkurrenter

Teknisk attributtSVG (Gjeldende)HTML5 CanvasPDFPNG
GjengivelsesmodellBeholdt modus for vektor-DOMUmiddelbar modus for punktgrafikklerretBeholdt modus for fast sidebeholderRasterisert pikselnett
Styling og CSSFullt mulig å style via CSS-klasser og variablerKrever omtegninger via JavaScript canvas-APIIngen dynamisk CSS-stylingFaste rasterpiksler
Uendelig skalerbarhetJa (matematiske vektorkurver)Krever manuell oppløsningsskaleringJa (vektorelementer)Nei (blir pikslete ved forstørrelse)
InteraktivitetNative DOM-hendelser (pekerbevegelser, klikk, animasjoner)Krever manuell matematikk for treffdeteksjonStatisk dokumentKrever bildekart eller lerret

Vanlige korrupsjonsmoduser og heksadesimal gjenopprettingsveiledning

Nettleseren viser XML-parsingfeil: uavsluttet tegn eller ikke-matchende tagg.

Underliggende årsak: Ugyldig XML-syntaks, manglende avsluttende tagger eller uundgagne et-tegn ('&' i stedet for '&amp;').

Utbedring: Valider med en XML-linter (xmllint file.svg) og rett opp ubalanserte tagger.

Sikkerhetsanalyse og angrepsvektorer mot parsere

Fordi SVG er kjørbar XML som støtter '<script>'-tagger og eksterne enheter, utgjør SVG betydelige XSS- og SSRF-risikoer hvis ikke-tillitsvekkende SVG-filer vises.

Kjente angrepsvektorer

  • Lagret tverrnettsteds-skripting (XSS) via innebygde '<script>'-tagger eller 'onload='-hendelsesbehandlere.
  • XML External Entity (XXE)-angrep som leser lokale serverfiler når de tolkes på backend-servere.
  • Billion Laughs XML-entitetsutvidelse som forårsaker tjenestenekt.

Anbefalte sikkerhetstiltak: Rens alltid SVG-er ved hjelp av DOMPurify før innbygging, eller lever SVG-er med 'Content-Security-Policy: default-src 'none'' eller som '<img>'-tagger som automatisk deaktiverer skript.

Historisk opprinnelse og milepæler

2018W3C SVG 2 Candidate Recommendation integrerer moderne CSS-styling.
2011SVG 1.1 (andre utgave) standardiserer universell støtte i mobil- og stasjonære nettlesere.
2001W3C publiserer SVG 1.0-spesifikasjonen utviklet fra forslagene VML og PGML.

Viktige fordeler

  • Uendelig oppløsningsuavhengighet: skarpe linjer og typografi i alle skjermstørrelser og ved alle utskriftsstørrelser.
  • Ekstremt liten filstørrelse for logoer, ikoner og brukergrensesnittelementer.
  • Fullt skriptbar og mulig å style via CSS og JavaScript inne i nettleserens DOM.

Tekniske begrensninger og ulemper

  • Uegnet for fotografier eller kompleks bildegjengivelse med kontinuerlige toner.
  • Komplekse vektorkurver med tusenvis av noder kan føre til treg gjengivelse på CPU-en og høyt batteriforbruk.
  • XML-naturen tillater innebygd skripting, noe som krever streng rensing før gjengivelse av ikke-tillitsvekkende opplastinger.

Interessante tekniske fakta

  • Gzip kan redusere størrelsen betydelig for enkelte SVG-filer; reduksjonen avhenger av dokumentinnholdet og komprimeringsinnstillingene.
  • Attributtet viewBox definerer et abstrakt koordinatlerret som tilpasses dynamisk til fysiske skjermpiksler.
  • Tidlige nettlesere manglet opprinnelig innebygde SVG-motorer, noe som førte til at Adobe distribuerte nettlesertillegget Adobe SVG Viewer før den innebygde nettleserstøtten stabiliserte seg rundt 2011.

Ofte stilte tekniske spørsmål

Kan SVG-filer inneholde skadelig kode?

Ja. Fordi SVG er gyldig XML, kan den inneholde innebygd JavaScript ('<script>') som kjøres hvis SVG-en lastes direkte i en nettleser eller åpnes i et innebygd '<svg>'-element. Å levere SVG-er via en '<img>'-tagg nøytraliserer automatisk skriptkjøring.

Når bør jeg bruke SVG i stedet for PNG?

Bruk SVG for ikoner, logoer, diagrammer, illustrasjoner og typografi der skarp skalering på tvers av alle skjermstørrelser og små filstørrelser er nødvendig. Bruk PNG eller WebP for fotografier.

Hvordan kan jeg optimalisere store eller komplekse SVG-filer?

Du kan rydde opp i vektorbaner ved å fjerne overflødige metadata, redigeringskommentarer fra Inkscape eller Illustrator, usynlige grupper og ubrukte navneromsdeklarasjoner ved hjelp av verktøy som SVGO eller SVG-komprimering.