Export CAD în SVG (.svg)

W3C Standard

Scalable Vector Graphics (SVG) este un format de imagine vectorială bazat pe XML pentru grafică bidimensională, cu suport pentru interactivitate, stilizare CSS și animație.

Convertește din SVG în PNG

Convertor gratuit din SVG în PNG direct în browser. Convertește fișiere instantaneu pe dispozitivul tău.

Comprimă SVG online

Privat - fișierele nu părăsesc niciodată dispozitivul tău

Inspectare și metadate

Sistemele de operare și analizatoarele de fișiere identifică fișierele SVG prin inspectarea secvenței binare inițiale:

Selectează sau plasează fișierele aici

Privat - fișierele nu părăsesc niciodată dispozitivul tău

sau lipește Ctrl+V
Garanție de confidențialitate: nicio transmisie prin rețea: 0 octeți încărcați pe servere externe. Toată procesarea a avut loc local în sandbox-ul browserului tău.

Semnătura antetului la nivel de octet (octeți magici)

Sistemele de operare și analizatoarele de fișiere identifică fișierele SVG prin inspectarea secvenței binare inițiale:

SEMNĂTURĂ HEXAZECIMALĂ (DECALAJ 0):

3C 73 76 67

REPREZENTARE ASCII: <svg

Standardizare: W3C Recommendation (SVG 1.1 / SVG 2)

Specificații tehnice

Arhitectură containerDocument de marcare text bazat pe XML care definește geometrie vectorială 2D
CompresieCompresie text Gzip / Brotli (SVGZ utilizează compresie gzip)
Ordinea octețilorNu se aplică (flux de caractere bazat pe text UTF-8 / UTF-16)
Spații de culoaresRGB, CSS Color Module 4 (Display P3, lab, lch)
Canale și structurăForme vectoriale cu rezoluție nelimitată, curbe Bézier, tipografie și măști de opacitate
Dimensiuni maximeIndependent de rezoluție (se scalează infinit la orice viewport fără pixelare)
TransparențăTransparență alfa variabilă completă și moduri de amestecare CSS
Streaming și progresivAnaliză sintactică în flux de text progresiv acceptată de parserul XML al browserului

Matrice de comparație tehnică: SVG vs. concurenți

Atribut tehnicSVG (Curent)HTML5 CanvasPDFPNG
Model de randareDOM vectorial în modul reținutCanvas bitmap în mod imediatContainer de pagină fix în modul reținutGrid de pixeli raster
Stilizare și CSSComplet stilizabil prin clase și variabile CSSNecesită reîmprospătări ale API-ului canvas JavaScriptFără stilizare CSS dinamicăPixeli raster ficși
Scalabilitate infinităDa (curbe vectoriale matematice)Necesită scalare manuală a rezoluțieiDa (elemente vectoriale)Nu (se pixelează la mărire)
InteractivitateEvenimente DOM native (hover, clic, animații)Necesită calcule manuale de detectare a punctelor de interacțiuneDocument staticNecesită hartă de imagini sau canvas

Moduri comune de corupție și ghid de recuperare hexazecimală

Browserul afișază eroare de analiză XML: token neînchis sau etichetă nepotrivită.

Cauză principală: Sintaxă XML malformată, etichete de închidere lipsă sau ampersanduri neescapate ('&' în loc de '&amp;').

Recuperare: Validează fișierul cu un linter XML (xmllint file.svg) și corectează etichetele neechilibrate.

Analiză de securitate și vectori de atac asupra parserului

Deoarece SVG este XML executabil care acceptă etichete '<script>' și entități externe, prezintă riscuri semnificative de tip XSS și SSRF dacă sunt afișate fișiere SVG neverificate.

Vectori de atac cunoscuți

  • Atac de tip Cross-Site Scripting (XSS) persistent prin etichete '<script>' încorporate sau gestionare a evenimentului 'onload='.
  • Atacuri cu entități externe XML (XXE) care citesc fișiere de pe serverul local atunci când sunt analizate pe servere backend.
  • Expansiunea entității XML Billion Laughs care cauzează refuzul serviciului (DoS).

Cele mai bune practici de securitate: Igienizează întotdeauna fișierele SVG cu DOMPurify înainte de a le încorpora sau servește-le cu antetul 'Content-Security-Policy: default-src none' ori prin etichete '<img>', care dezactivează automat scripturile.

Origini istorice și repere

2018Recomandarea W3C SVG 2 aflată în stadiul de proiect integrează stilizarea CSS modernă.
2011SVG 1.1 (Ediția a doua) standardizează suportul universal pentru browsere mobile și desktop.
2001W3C publică specificația SVG 1.0 dezvoltată din propunerile VML și PGML.

Avantaje cheie și beneficii

  • Independență absolută față de rezoluție: linii clare și tipografie pe orice afișaj sau scară de imprimare.
  • Dimensiune extrem de mică a fișierului pentru sigle, pictograme și elemente de interfață UI.
  • Complet scriptabil și stilizabil prin CSS și JavaScript în interiorul DOM-ului browserului.

Limitări tehnice și dezavantaje

  • Nepotrivit pentru fotografii sau imagini complexe cu tonuri continue.
  • Căile vectoriale complexe cu mii de noduri pot cauza încetiniri la randarea pe procesor și consum ridicat al bateriei.
  • Natura XML permite scriptarea încorporată, necesitând o igienizare strictă înainte de randarea încărcărilor nesigure.

Curiozități tehnice interesante

  • Gzip poate reduce semnificativ dimensiunea unor fișiere SVG; reducerea depinde de conținutul documentului și de setările de compresie.
  • Atributul viewBox definește un spațiu de coordonate abstract care se mapează dinamic pe pixelii fizici ai ecranului.
  • Browserele web timpurii nu aveau inițial motoare SVG native, determinând Adobe să distribuie pluginul de browser Adobe SVG Viewer înainte ca suportul nativ al browserului să se consolideze în jurul anului 2011.

Întrebări tehnice frecvente

Pot fișierele SVG să conțină cod malefic?

Da. Deoarece SVG este un fișier XML valid, acesta poate conține JavaScript încorporat ('<script>') care se execută dacă SVG-ul este încărcat direct într-un browser sau deschis într-un element '<svg>' inline. Servirea fișierelor SVG printr-o etichetă '<img>' neutralizează automat executarea scripturilor.

Când ar trebui să folosesc SVG în loc de PNG?

Utilizează SVG pentru pictograme, sigle, diagrame, ilustrații și tipografie pentru care sunt necesare scalarea clară pe toate dimensiunile de ecran și dimensiunile mici ale fișierelor. Utilizează PNG sau WebP pentru fotografii.

Cum pot optimiza fișierele SVG mari sau complexe?

Poți curăța căile vectoriale eliminând metadatele redundante, comentariile editorului (din Inkscape sau Illustrator), grupurile invizibile și declarațiile de namespace neutilizate folosind instrumente precum SVGO sau rulând compresia SVG.