Векторне зображення SVG (.svg)

Рекомендація Стандарт

Scalable Vector Graphics (SVG): це формат векторних зображень на основі XML для двовимірної графіки з підтримкою інтерактивності, стилізації CSS та анімації.

Конвертувати з SVG у PNG

Безкоштовний конвертер з SVG у PNG у браузері. Миттєво конвертуйте файли на своєму пристрої.

Стиснути SVG онлайн

Приватно - файли ніколи не залишають ваш пристрій

Аналіз та метадані

Операційні системи та аналізатори файлів ідентифікують файли SVG, перевіряючи початкову послідовність бінарних байтів:

Виберіть або перетягніть файли сюди

Приватно - файли ніколи не залишають ваш пристрій

або вставте Ctrl+V
Гарантія конфіденційності без передавання даних мережею: Жодного байта не передано на зовнішні сервери. Уся обробка відбувалася локально в ізольованому середовищі браузера.

Сигнатура заголовка на байтовому рівні (Magic Bytes)

Операційні системи та аналізатори файлів ідентифікують файли SVG, перевіряючи початкову послідовність бінарних байтів:

ШІСТНАДЦЯТКОВА СИГНАТУРА (ЗСУВ 0):

3C 73 76 67

ПОДАННЯ В ASCII: <svg

Стандартизація: Рекомендація W3C (SVG 1.1 / SVG 2)

Технічні характеристики

Архітектура контейнераТекстовий документ розмітки на основі XML, що визначає 2D векторну геометрію
СтисненняТекстове стиснення Gzip / Brotli (SVGZ використовує стиснення gzip)
Порядок байтів (Endianness)Не застосовується (текстовий потік символів UTF-8 / UTF-16)
Колірні просториsRGB, CSS Color Module 4 (Display P3, lab, lch)
Канали та структураВекторні фігури з необмеженою роздільною здатністю, криві Без'є, типографіка та маски прозорості
Максимальні розміриНезалежно від роздільної здатності (масштабується нескінченно до будь-якого вікна перегляду без пікселізації)
ПрозорістьПовна змінна альфа-прозорість та режими змішування CSS
Потокове та прогресивне завантаженняXML-парсер браузера підтримує поступовий розбір текстового потоку.

Технічна матриця порівняння: SVG проти конкурентів

Технічний атрибутSVG (Поточний)HTML5 CanvasPDFPNG
Модель відображенняВекторний DOM зі збереженим станомРастрове полотно з безпосереднім режимом відображенняКонтейнер фіксованої сторінки зі збереженим станомРастрова сітка пікселів
Стилізація та CSSПовністю підтримує стилізацію за допомогою класів CSS і змінних.Потребує перемальовування полотна через JavaScript Canvas API.Відсутня динамічна стилізація CSSФіксовані растрові пікселі
Нескінченна масштабованістьТак (математичні векторні криві)Вимагає ручного масштабування роздільної здатностіТак (векторні елементи)Ні (пікселізується під час збільшення)
ІнтерактивністьВбудовані події DOM (наведення, клацання, анімація)Потребує власних обчислень для визначення влучання в об’єкт.Статичний документВимагає карти зображення або полотна

Типові режими пошкодження та посібник з відновлення в шістнадцятковому форматі

Браузер відображає помилку синтаксичного аналізу XML: незакритий токен або невідповідний тег.

Першопричина: Пошкоджений синтаксис XML, відсутність закритих тегів або неекрановані амперсанди ('&' замість '&amp;').

Відновлення: Перевірте за допомогою лінтера XML (xmllint file.svg) та виправте незбалансовані теги.

Аналіз безпеки та векторів атак на парсери

Оскільки SVG: це виконуваний XML, що підтримує теги «<script>» і зовнішні сутності, відображення недовірених SVG-файлів створює значні ризики XSS і SSRF.

Відомі вектори атак

  • Збережений міжсайтовий скриптинг (XSS) через вбудовані теги '<script>' або обробники подій 'onload='.
  • Атаки з використанням зовнішніх сутностей XML (XXE), що дають змогу читати локальні файли сервера, коли документ розбирається на серверній частині.
  • Розгортання XML-сутностей в атаці «Billion Laughs», що спричиняє відмову в обслуговуванні.

Рекомендації щодо захисту: Перед вбудовуванням завжди очищуйте SVG за допомогою DOMPurify або віддавайте SVG із заголовком «Content-Security-Policy: default-src 'none'», або використовуйте теги «<img>», які автоматично вимикають скрипти.

Історичне походження та віхи

2018Рекомендація-кандидат W3C SVG 2 інтегрує сучасне оформлення за допомогою CSS.
2011SVG 1.1 (друге видання) сприяв широкій підтримці SVG у настільних і мобільних браузерах.
2001W3C публікує специфікацію SVG 1.0, розроблену на основі пропозицій VML та PGML.

Основні переваги

  • Не залежить від роздільної здатності: лінії та типографіка залишаються чіткими за будь-якого масштабу на екрані чи під час друку.
  • Надзвичайно малий розмір файлу для логотипів, іконок та елементів інтерфейсу користувача.
  • Повністю підтримує скрипти та стилізацію через CSS і JavaScript всередині DOM браузера.

Технічні обмеження та недоліки

  • Не підходить для фотографій або складних зображень із неперервним тоном.
  • Складні векторні контури з тисячами вузлів можуть сповільнити відображення через навантаження на процесор і швидко розряджати батарею.
  • Оскільки SVG побудований на XML, у нього можна вбудовувати скрипти. Тому перед відображенням ненадійних завантажених файлів їх потрібно ретельно очищувати.

Цікаві технічні факти

  • Gzip може суттєво зменшити розмір деяких файлів SVG; ступінь зменшення залежить від вмісту документа й налаштувань стиснення.
  • Атрибут viewBox визначає абстрактне полотно координат, яке динамічно зіставляється з фізичними пікселями екрана.
  • У ранніх веббраузерах не було вбудованих рушіїв SVG, тому Adobe розповсюджувала плагін Adobe SVG Viewer, доки підтримка SVG у браузерах не закріпилася приблизно у 2011 році.

Поширені технічні запитання

Чи можуть файли SVG містити шкідливий код?

Так. Оскільки SVG є дійсним XML, він може містити вбудований JavaScript ('<script>'), який виконується, якщо SVG завантажується безпосередньо в браузер або відкривається у вбудованому елементі '<svg>'. Надсилання SVG через тег '<img>' автоматично нейтралізує виконання скриптів.

Коли варто використовувати SVG замість PNG?

Використовуйте SVG для іконок, логотипів, діаграм, ілюстрацій та типографіки, де потрібне чітке масштабування для всіх розмірів екрана та малий розмір файлів. Використовуйте PNG або WebP для фотографій.

Як можна оптимізувати великі або складні файли SVG?

Ви можете очистити векторні контури, видаливши зайві метадані, коментарі редактора (з Inkscape або Illustrator), невидимі групи та невикористані оголошення просторів імен за допомогою таких інструментів, як SVGO, або шляхом стиснення SVG.

Пов'язані пари конвертації SVG

SVG до PNG

Перетворення файлів векторної графіки SVG у растрові зображення PNG перетворює масштабовану графіку на основі коду на фіксовану сітку пікселів для універсальної сумісності з додатками.

PNG до SVG

Вбудуйте растрові зображення PNG у векторний контейнер SVG з XML-розміткою для адаптивного масштабування на вебсторінках і роботи з векторними макетами.

WMF до SVG

Перетворюйте застарілі 16-бітні записи команд векторного малювання Windows GDI на сучасні масштабовані контури SVG без втрати роздільної здатності.

EMF до SVG

Конвертуйте 32-бітну графіку Windows Enhanced Metafile у чисті, адаптивні вектори SVG для вебпрограм та дизайну.

DXF до SVG

Конвертація креслення DXF у формат SVG перетворює складні інженерні векторні дані на легку XML-графіку для веб-переглядачів та векторних редакторів.

SVG до DXF

Перетворення масштабованої векторної графіки у формат обміну кресленнями перетворює візуальні вектори, готові для вебу, на точні математичні координати, необхідні для програмного забезпечення САПР.

SVG до PDF

Поділіться логотипом або ілюстрацією SVG як односторінковим PDF. Його масштабовані контури перетворюються на зображення з фіксованою роздільною здатністю, тому збільшення масштабу не відновлює векторну деталізацію.