Scalable Vector Graphics

SVG (Scalable Vector Graphics) — масштабируемая векторная графика

Что такое SVG?

SVG (Scalable Vector Graphics) — это открытый формат файлов для описания двумерной векторной графики на основе языка разметки XML. В отличие от растровых форматов, таких как JPEG или PNG, SVG-изображения описывают графику через математические формулы: кривые, линии, фигуры и текст. Благодаря этому они масштабируются без потери качества при любом разрешении экрана или размере печати.

История формата началась в конце 1990-х годов. В 1998 году консорциум W3C начал работу над спецификацией, и в 2001 году была опубликована версия SVG 1.0 как официальная рекомендация W3C. В 2003 году вышла версия SVG 1.1, которая до сих пор является наиболее широко поддерживаемой. В 2011 году появилась SVG 1.1 Second Edition с уточнениями и исправлениями, а работа над SVG 2.0 продолжается по сей день. Сегодня формат поддерживается всеми современными браузерами и является неотъемлемой частью веб-разработки.

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

SVG-файл представляет собой текстовый документ в формате XML, что делает его читаемым для человека и легко редактируемым в любом текстовом редакторе. Ниже перечислены ключевые технические особенности формата:

  • Основа формата: XML (Extensible Markup Language) — SVG описывает графические элементы через теги и атрибуты, аналогично HTML.
  • Разрешение: Формат не зависит от разрешения. Изображение одинаково чётко отображается как на экране смартфона, так и при печати в формате A0.
  • Цветовая глубина: SVG поддерживает полный спектр цветовых моделей: RGB, RGBA (с поддержкой прозрачности), HSL, а также именованные цвета CSS. Поддерживается градиентная заливка и паттерны.
  • Сжатие: SVG-файлы могут быть сжаты с помощью алгоритма GZIP, в результате чего получается формат SVGZ. Степень сжатия обычно составляет 60–80% от исходного размера.
  • Анимация: Формат поддерживает встроенную анимацию через SMIL (Synchronized Multimedia Integration Language) и CSS-анимации, а также манипуляции через JavaScript.
  • Интерактивность: Элементы SVG могут реагировать на события мыши и клавиатуры, поддерживают гиперссылки и сценарии.
  • Встраивание шрифтов и растровых изображений: В SVG можно встраивать растровую графику (через Base64) и ссылаться на внешние шрифты.
  • Фильтры и эффекты: Поддерживаются SVG-фильтры: размытие, тени, свечение, цветокоррекция и другие эффекты, описываемые декларативно.
  • MIME-тип: image/svg+xml
  • Расширение файла: .svg или .svgz (сжатая версия)

Сферы применения SVG

Благодаря своей гибкости и масштабируемости, формат SVG используется в самых разных областях:

  • Веб-дизайн и разработка: иконки, логотипы, иллюстрации, фоновые паттерны, кнопки и UI-элементы интерфейса.
  • Инфографика и визуализация данных: интерактивные графики, диаграммы и карты, созданные с помощью библиотек D3.js, Chart.js и других.
  • Брендинг и фирменный стиль: логотипы компаний, поскольку формат гарантирует чёткость на любом носителе — от визитки до рекламного щита.
  • Анимация и интерактивные элементы: анимированные иллюстрации для лендингов, интерактивные карты и обучающие материалы.
  • Печатная продукция: векторные иллюстрации для полиграфии, где важно качество при любом масштабе.
  • Картография: онлайн-карты и схемы, где требуется плавное масштабирование.
  • Технические чертежи и схемы: диаграммы архитектуры, технические иллюстрации и схемы подключения.

Преимущества и недостатки SVG

Преимущества Недостатки
Масштабирование без потери качества при любом размере Не подходит для хранения фотографий и сложных растровых изображений
Небольшой размер файла для простых изображений Файлы с очень сложной векторной графикой могут быть большими и медленно рендериться
Текстовый формат на основе XML — легко редактировать и индексировать Текстовая структура может раскрывать информацию о структуре дизайна
Поддержка анимации и интерактивности без дополнительных плагинов Сложная анимация может требовать значительных ресурсов процессора
Полная поддержка во всех современных браузерах Старые браузеры (IE 8 и ниже) имеют ограниченную или отсутствующую поддержку
SEO-дружелюбность: текст внутри SVG индексируется поисковиками Встроенные SVG могут создавать уязвимости XSS при неправильной санации
Открытый стандарт W3C, не зависит от производителя Рендеринг может незначительно отличаться в разных браузерах и приложениях

Чем открыть SVG-файл

Существует множество программ и инструментов для просмотра и редактирования SVG-файлов:

  • Браузеры: Google Chrome, Mozilla Firefox, Safari, Microsoft Edge — все современные браузеры открывают SVG-файлы напрямую.
  • Adobe Illustrator: профессиональный редактор векторной графики с полной поддержкой SVG.
  • Inkscape: бесплатный редактор векторной графики с открытым исходным кодом, использующий SVG как основной формат.
  • Figma: популярный онлайн-инструмент для UI/UX-дизайна с поддержкой импорта и экспорта SVG.
  • CorelDRAW: профессиональный пакет для работы с векторной графикой.
  • Affinity Designer: доступная альтернатива Adobe Illustrator с поддержкой SVG.
  • GIMP: бесплатный растровый редактор, поддерживающий открытие SVG с растеризацией.
  • Текстовые редакторы: VS Code, Notepad++, Sublime Text — для просмотра и редактирования XML-кода SVG.
  • Windows Explorer / macOS Finder: встроенные средства просмотра операционных систем поддерживают предпросмотр SVG.

Как конвертировать SVG-файлы онлайн

Иногда возникает необходимость конвертировать SVG в другой формат — например, в PNG для использования в приложениях, не поддерживающих векторную графику, или в PDF для передачи в типографию. Обратная конвертация также востребована: например, перевод растрового PNG-логотипа в SVG для масштабирования.

Для быстрой онлайн-конвертации без установки программ можно воспользоваться сервисом Metric Converter (metric-converter.com). Сервис поддерживает конвертацию SVG в PNG, JPG, PDF, WebP и ряд других форматов, а также обратное преобразование. Загрузка файла, выбор целевого формата и скачивание результата занимают считанные секунды — регистрация не требуется.

При конвертации SVG в растровые форматы рекомендуется заранее указать желаемое разрешение (DPI) или размеры в пикселях, чтобы получить изображение нужного качества.

Часто задаваемые вопросы

В чём разница между SVG и PNG?

PNG — растровый формат, хранящий изображение в виде сетки пикселей. При увеличении PNG теряет чёткость и становится зернистым. SVG — векторный формат, описывающий изображение математически, поэтому оно остаётся чётким при любом масштабе. PNG лучше подходит для фотографий, SVG — для логотипов, иконок и иллюстраций.

Можно ли использовать SVG на всех сайтах?

Да, SVG поддерживается всеми современными браузерами и может встраиваться в HTML напрямую через тег <img>, <object>, CSS-свойство background-image или непосредственно как inline-SVG внутри HTML-кода страницы. Единственное исключение — Internet Explorer 8 и более старые браузеры, для которых потребуется PNG-заглушка.

Безопасно ли открывать SVG-файлы из неизвестных источников?

С осторожностью. Поскольку SVG является XML-документом, он может содержать JavaScript-код. При открытии в браузере такой скрипт может выполниться, что создаёт риск XSS-атак. Рекомендуется открывать SVG-файлы из неизвестных источников только в специализированных редакторах (например, Inkscape) или предварительно проверять содержимое файла в текстовом редакторе.

Почему мой SVG-файл выглядит иначе в разных программах?

Разные приложения по-разному интерпретируют некоторые элементы SVG-спецификации, особенно касающиеся шрифтов, фильтров и анимации. Браузеры, как правило, следуют стандарту W3C наиболее точно. Если SVG создан в Illustrator, он может содержать нестандартные атрибуты Adobe, которые некорректно отображаются в других программах. Для максимальной совместимости рекомендуется очищать SVG от лишних метаданных с помощью инструментов вроде SVGO.