SVG-vectorafbeelding (.svg)

W3C Standaard

Scalable Vector Graphics (SVG) is een op XML gebaseerd vectorafbeeldingsformaat voor tweedimensionale afbeeldingen met ondersteuning voor interactiviteit, CSS-styling en animatie.

SVG naar PNG converteren

Gratis SVG-naar-PNG-converter in uw browser. Converteer bestanden direct op uw apparaat.

SVG online comprimeren

Privé - bestanden verlaten uw apparaat niet

Inspecteren en metadata

Besturingssystemen en bestandsanalysators herkennen SVG-bestanden aan de hand van de eerste binaire bytesequentie:

Selecteer of sleep bestanden hierheen

Privé - bestanden verlaten uw apparaat niet

of plak Ctrl+V
Privacygarantie zonder netwerktransmissie: 0 bytes geüpload naar externe servers. Alle verwerking vond lokaal plaats in uw browser-sandbox.

Bestandshandtekening op byteniveau (magic bytes)

Besturingssystemen en bestandsanalysators herkennen SVG-bestanden aan de hand van de eerste binaire bytesequentie:

HEX-HANDTEKENING (OFFSET 0):

3C 73 76 67

ASCII-WEERGAVE: <svg

Standaardisatie: W3C Recommendation (SVG 1.1 / SVG 2)

Technische specificaties

ContainerarchitectuurOp XML gebaseerd tekstmarkupdocument dat 2D-vectorgeometrie definieert
CompressieGzip- / Brotli-tekstcompressie (SVGZ gebruikt gzip-compressie)
Bytevolgorde (endianness)Niet van toepassing (op tekst gebaseerde UTF-8- of UTF-16-tekenstroom)
KleurruimtensRGB, CSS Color Module 4 (Display P3, lab, lch)
Kanalen en structuurVectorvormen met onbeperkte resolutie, Béziercurven, typografie en opaciteitsmaskers
Maximale afmetingenResolutieonafhankelijk (schaalt zonder pixelvorming naar elk weergavegebied)
TransparantieVolledige variabele alfatransparantie en CSS-overvloeimodi
Streaming en progressiefProgressieve tekststroomparsing ondersteund door de XML-parser van de browser

Technische vergelijkingsmatrix: SVG versus concurrenten

Technisch kenmerkSVG (Huidig)HTML5 CanvasPDFPNG
RendermodelRetained-mode vectordocumentobjectmodel (DOM)Immediate-mode bitmapcanvasRetained-mode-container met vaste pagina'sRaster van pixels
Opmaak en CSSVolledig op te maken met CSS-klassen en -variabelenVereist dat het canvas opnieuw wordt getekend met de JavaScript-APIGeen dynamische CSS-opmaakVaste rasterpixels
Oneindige schaalbaarheidJa (wiskundige vectorcurven)Vereist handmatige resolutieschalingJa (vectorelementen)Nee (pixelvorming bij vergroting)
InteractiviteitIngebouwde DOM-gebeurtenissen (hover, klikken, animaties)Vereist handmatige berekeningen voor hitdetectieStatisch documentVereist een image map of canvas

Veelvoorkomende beschadigingen en gids voor hex-herstel

De browser toont 'XML Parsing Error: unclosed token' of 'mismatched tag'.

Oorzaak: Onjuiste XML-syntaxis, ontbrekende sluittags of niet-geëscapete ampersands ('&' in plaats van '&amp;').

Herstel: Valideer met een XML-linter (xmllint file.svg) en corrigeer tags die niet in balans zijn.

Beveiligingsanalyse en aanvalsvectoren voor parsers

Omdat SVG uitvoerbare XML is die '<script>'-tags en externe entiteiten ondersteunt, levert dit aanzienlijke XSS- en SSRF-risico's op als niet-vertrouwde SVG's worden weergegeven.

Bekende aanvalsvectoren

  • Opgeslagen cross-sitescripting (XSS) via ingesloten '<script>'-tags of 'onload='-gebeurtenishandlers.
  • XML External Entity (XXE)-aanvallen die lokale serverbestanden lezen wanneer deze worden geparseerd op backend-servers.
  • XML-entiteitsexpansie (Billion Laughs) die een denial of service veroorzaakt.

Aanbevolen beveiligingspraktijken: Schoon SVG's altijd op met DOMPurify voordat u ze insluit, of lever SVG's met 'Content-Security-Policy: default-src 'none'' of als '<img>'-tags, die scripts automatisch uitschakelen.

Historische oorsprong en mijlpalen

2018W3C SVG 2 Candidate Recommendation integreert moderne CSS-styling.
2011SVG 1.1 (Second Edition) droeg bij aan brede ondersteuning voor SVG in desktop- en mobiele browsers.
2001W3C publiceert de SVG 1.0-specificatie ontwikkeld vanuit VML- en PGML-voorstellen.

Belangrijkste voordelen

  • Onbeperkte resolutieonafhankelijkheid: scherpe lijnen en typografie op elk beeldscherm en op elke afdrukschaal.
  • Extreem kleine bestandsgrootte voor logo's, pictogrammen en UI-elementen.
  • Volledig te scripten en op te maken met CSS en JavaScript binnen de DOM van de browser.

Technische beperkingen

  • Ongeschikt voor foto's of complexe afbeeldingen met continue tonen.
  • Complexe vectorpaden met duizenden knooppunten kunnen vertraging bij CPU-rendering en een hoog batterijverbruik veroorzaken.
  • Door het XML-karakter kunnen scripts worden ingesloten, waardoor niet-vertrouwde uploads strikt moeten worden opgeschoond voordat ze worden weergegeven.

Interessante technische weetjes

  • Gzip kan de grootte van sommige SVG-bestanden aanzienlijk verkleinen; de reductie hangt af van de documentinhoud en de instellingen voor compressie.
  • Het viewBox-attribuut definieert een abstract coördinatencanvas dat dynamisch wordt toegewezen aan fysieke schermpixels.
  • Vroege webbrowsers hadden aanvankelijk geen ingebouwde SVG-engines. Daarom verspreidde Adobe de browserplug-in Adobe SVG Viewer, totdat browserondersteuning rond 2011 gemeengoed werd.

Veelgestelde technische vragen

Kunnen SVG-bestanden kwaadaardige code bevatten?

Ja. Omdat SVG geldige XML is, kan het ingesloten JavaScript ('<script>') bevatten dat wordt uitgevoerd als de SVG rechtstreeks in een browser wordt geladen of in een inline '<svg>'-element wordt geopend. Door SVG's via een '<img>'-tag te leveren, wordt scriptuitvoering automatisch geneutraliseerd.

Wanneer moet ik SVG gebruiken in plaats van PNG?

Gebruik SVG voor pictogrammen, logo's, grafieken, illustraties en typografie waarbij scherpe schaling op alle schermformaten en kleine bestandsgroottes vereist zijn. Gebruik PNG of WebP voor foto's.

Hoe kan ik grote of complexe SVG-bestanden optimaliseren?

U kunt vectorpaden opschonen door overbodige metadata, opmerkingen van bewerkingsprogramma's (van Inkscape of Illustrator), onzichtbare groepen en ongebruikte naamruimtedeclaraties te verwijderen met tools zoals SVGO of door SVG-compressie uit te voeren.