Vektorový formát SVG (.svg)

W3C Standardní

Scalable Vector Graphics (SVG) je vektorový obrazový formát založený na XML pro dvojrozměrnou grafiku s podporou interaktivity, stylů CSS a animace.

Převést SVG na PNG

Bezplatný konvertor z SVG do PNG v prohlížeči. Převeďte soubory okamžitě ve svém zařízení.

Komprese SVG online

Soukromě - soubory nikdy neopustí vaše zařízení

Kontrola a metadata

Operační systémy a analyzátory souborů identifikují soubory SVG kontrolou počáteční binární sekvence bajtů:

Vyberte nebo přetáhněte soubory sem

Soukromě - soubory nikdy neopustí vaše zařízení

nebo vložte Ctrl+V
Záruka ochrany soukromí s nulovým přenosem po síti: 0 bajtů odesláno na externí servery. Veškeré zpracování probíhalo lokálně v sandboxu vašeho prohlížeče.

Podpis hlavičky na úrovni bajtů (Magic Bytes)

Operační systémy a analyzátory souborů identifikují soubory SVG kontrolou počáteční binární sekvence bajtů:

HEXADECIMÁLNÍ PODPIS (POSUN 0):

3C 73 76 67

ASCII REPREZENTACE: <svg

Standardizace: W3C Recommendation (SVG 1.1 / SVG 2)

Technické specifikace

Architektura kontejneruDokument značkovacího jazyka XML definující 2D vektorovou geometrii
KompreseTextová komprese Gzip / Brotli (SVGZ používá kompresi gzip)
Pořadí bajtůNevztahuje se (Textový proud znaků UTF-8 / UTF-16)
Barevné prostorysRGB, CSS Color Module 4 (Display P3, lab, lch)
Kanály a strukturaVektorové tvary s neomezeným rozlišením, Bézierovy křivky, typografie a masky krytí
Max. rozměryNezávislé na rozlišení (škáluje se nekonečně na jakýkoli výřez bez pixelace)
PrůhlednostPlně proměnlivá alfa průhlednost a režimy míchání CSS
Streamování a progresivní načítáníParsování progresivního textového proudu podporované analyzátorem XML v prohlížeči

Technická srovnávací matice: SVG vs konkurence

Technický atributSVG (Aktuální)HTML5 CanvasPDFPNG
Model vykreslováníVektorový DOM v režimu uchováváníBitmapové plátno v režimu okamžitého vykreslováníKontejner stránky s pevným rozvržením v režimu uchováváníRastr pixelové mřížky
Styling a CSSPlně stylovatelné pomocí tříd a proměnných CSSVyžaduje překreslení pomocí API plátna JavaScriptuŽádný dynamický styling CSSPevné rastrové pixely
Nekonečná škálovatelnostAno (matematické vektorové křivky)Vyžaduje ruční škálování rozlišeníAno (vektorové prvky)Ne (při zvětšení se pixeluje)
InteraktivitaNativní události DOM (přechod myší, kliknutí, animace)Vyžaduje ruční matematické výpočty pro detekci zásahuStatický dokumentVyžaduje obrazovou mapu nebo plátno

Běžné režimy poškození a příručka pro obnovení v hex

Prohlížeč zobrazuje chybu parsování XML: neuzavřený token nebo neshodná značka.

Hlavní příčina: Chybná syntaxe XML, chybějící uzavírací značky nebo neošetřené ampersandy ('&' namísto '&amp;').

Obnovení: Ověřte pomocí XML linteru (xmllint file.svg) a opravte nevyvážené značky.

Bezpečnostní analýza a vektory útoků na parser

Protože SVG je spustitelné XML, které podporuje značky '<script>' a externí entity, představuje značná rizika XSS a SSRF, pokud jsou zobrazeny nedůvěryhodné soubory SVG.

Známé vektory útoků

  • Uložené Cross-Site Scripting (XSS) prostřednictvím vložených značek '<script>' nebo obslužných rutin událostí 'onload='.
  • Útoky XML External Entity (XXE) čtoucí lokální soubory serveru při parsování na backendových serverech.
  • Expanze entit XML Billion Laughs způsobující odepření služby.

Doporučené bezpečnostní postupy: Vždy vyčistěte soubory SVG pomocí DOMPurify před vnořením, nebo podávejte soubory SVG s hlavičkou 'Content-Security-Policy: default-src 'none'' nebo jako značky '<img>', které automaticky zakážou skripty.

Historický vývoj a milníky

2018Návrh doporučení W3C SVG 2 integruje moderní styly CSS.
2011SVG 1.1 (druhá edice) standardizuje univerzální podporu v mobilních a desktopových prohlížečích.
2001W3C vydává specifikaci SVG 1.0 vyvinutou z návrhů VML a PGML.

Klíčové výhody a přednosti

  • Nekonečná nezávislost na rozlišení: ostré čáry a typografie v jakémkoli měřítku zobrazení nebo tisku.
  • Extrémně malá velikost souboru pro loga, ikony a prvky uživatelského rozhraní.
  • Plně skriptovatelné a upravitelné pomocí CSS a JavaScriptu uvnitř DOM prohlížeče.

Technická omezení a nevýhody

  • Nevhodné pro fotografie nebo složité snímky s plynulými přechody tónů.
  • Složité vektorové cesty s tisíci uzlů mohou způsobit zpomalení vykreslování CPU a vysokou spotřebu baterie.
  • Povaha XML umožňuje vložené skriptování, což vyžaduje přísné čištění před vykreslením nedůvěryhodných nahrání.

Zajímavé technické drobnosti

  • Gzip může výrazně zmenšit některé soubory SVG; míra zmenšení závisí na obsahu dokumentu a nastavení komprese.
  • Atribut viewBox definuje abstraktní souřadnicové plátno, které se dynamicky mapuje na fyzické pixely obrazovky.
  • Ranné webové prohlížeče zpočátku postrádaly nativní enginy SVG, což přimělo společnost Adobe k distribuci doplňku prohlížeče Adobe SVG Viewer, než se nativní podpora prohlížeče ustálila kolem roku 2011.

Často kladené technické otázky

Mohou soubory SVG obsahovat škodlivý kód?

Ano. Protože SVG je platné XML, může obsahovat vložený JavaScript ('<script>'), který se spustí, pokud je SVG načteno přímo v prohlížeči nebo otevřeno ve vloženém prvku '<svg>'. Podávání SVG přes značku '<img>' automaticky neutralizuje spouštění skriptů.

Kdy mám použít SVG namísto PNG?

Použijte SVG pro ikony, loga, grafy, ilustrace a typografii, kde je vyžadováno ostré škálování napříč všemi velikostmi obrazovek a malé velikosti souborů. Pro fotografie použijte PNG nebo WebP.

Jak mohu optimalizovat velké nebo složité soubory SVG?

Vektorové cesty můžete vyčistit odstraněním nadbytečných metadat, komentářů editoru (z Inkscape nebo Illustratoru), neviditelných skupin a nepoužitých deklarací jmenných prostorů pomocí nástrojů jako SVGO nebo spuštěním komprese SVG.