Как конвертировать SVG в PNG без потери чёткости

SVG (Scalable Vector Graphics) — это векторный формат изображений, основанный на XML, который масштабируется без потери качества. PNG (Portable Network Graphics) — растровый формат с поддержкой прозрачности. Конвертация SVG в PNG предполагает перевод математических кривых и координат в пиксельную сетку с сохранением максимально возможной чёткости и детализации.

Почему чёткость теряется при конвертации

При переводе векторного изображения в растр происходит растеризация — каждая кривая и линия превращается в набор пикселей. Если разрешение при экспорте задано неверно, итоговый PNG окажется размытым или «мыльным». Основные причины потери качества:

  • Слишком низкое значение DPI (dots per inch) при экспорте
  • Неправильно заданные размеры canvas в пикселях
  • Субпиксельное сглаживание без контроля со стороны пользователя
  • Использование онлайн-конвертеров с ограничением выходного разрешения
  • Некорректная настройка viewBox в исходном SVG-файле

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

Параметры, влияющие на качество экспорта

Параметр Рекомендуемое значение Назначение
DPI (разрешение) 150–300 dpi для печати, 72–96 dpi для экрана Определяет плотность пикселей
Ширина/высота в пикселях Минимум 2× от отображаемого размера Запас под Retina-дисплеи
Цветовое пространство sRGB Совместимость с браузерами и ОС
Bit depth 32 bit (RGBA) при наличии прозрачности Сохраняет альфа-канал
Antialiasing Включён (subpixel или grayscale) Сглаживание диагональных линий

Способ 1: конвертация через Inkscape

Inkscape — бесплатный векторный редактор с открытым исходным кодом, один из наиболее точных инструментов растеризации SVG. Версия 1.3+ (актуальная на 2026 год) поддерживает пакетный экспорт и командную строку.

Через графический интерфейс:

  1. Открыть файл SVG в Inkscape
  2. Перейти: Файл → Экспортировать PNG (Shift+Ctrl+E)
  3. Задать ширину в пикселях — например, 2000 px для логотипа
  4. Установить DPI: 300 для печати или 96 для веба
  5. Нажать «Экспортировать»

Через командную строку (batch-экспорт):

  • inkscape input.svg --export-type=png --export-filename=output.png --export-dpi=300
  • Параметр --export-width=4000 задаёт конкретную ширину в пикселях
  • Флаг --export-background-opacity=0 сохраняет прозрачность фона

Способ 2: конвертация через Adobe Illustrator

В версии Illustrator 2025–2026 процесс экспорта упрощён. Для максимального качества следует использовать функцию «Экспорт для экранов», а не устаревший «Сохранить для Web».

  1. Открыть SVG-файл
  2. Перейти: Файл → Экспорт → Экспорт для экранов
  3. Выбрать формат PNG
  4. Задать масштаб: 1x, 2x, 3x или конкретное значение в пикселях
  5. Включить опцию «Антиалиасинг текста»
  6. Нажать «Экспортировать артборд»

Способ 3: конвертация через браузер и JavaScript

Подходит для автоматизации на стороне фронтенда или Node.js. Используется связка Canvas API + библиотека sharp (Node.js).

  • Библиотека sharp (версия 0.33+, актуальна 2026): поддерживает SVG → PNG нативно через libvips
  • Команда: sharp('input.svg').resize(2000).png().toFile('output.png')
  • Параметр density: 300 задаёт DPI: sharp('input.svg', { density: 300 })
  • Библиотека puppeteer: открывает SVG в Chromium и делает скриншот с заданным deviceScaleFactor (2–4)
  • Библиотека resvg-js: высокоточная растеризация на базе Rust, без зависимостей от браузера

Способ 4: онлайн-конвертеры

Онлайн-инструменты удобны для разовых задач, однако имеют ограничения по максимальному разрешению вывода.

Сервис Макс. разрешение Поддержка прозрачности Стоимость
Convertio до 10 000 px Да Бесплатно / от $9.99/мес
CloudConvert до 14 400 px Да Бесплатно 25 конв./день
SVG2PNG (svg2png.com) до 4000 px Да Бесплатно
Squoosh (Google) Зависит от файла Да Бесплатно

Работа с viewBox и единицами измерения в SVG

Перед конвертацией важно проверить сам SVG-файл. Некорректный viewBox — частая причина обрезанного или размытого результата.

  • Атрибут viewBox="0 0 100 100" задаёт внутреннюю систему координат
  • Атрибуты width и height в SVG должны совпадать с пропорциями viewBox
  • Если SVG создан без viewBox, Inkscape и sharp могут растеризовать его в размере 1×1 px
  • Рекомендуется всегда проверять SVG через xmllint --noout file.svg перед экспортом
  • Добавление viewBox к SVG без него решает до 80% проблем с некорректной растеризацией

Рекомендации по выбору разрешения для разных задач

Назначение PNG Рекомендуемый DPI Минимальный размер (px)
Веб-страница (обычный экран) 72–96 dpi от 800 px по ширине
Retina / HiDPI экран 144–192 dpi от 1600 px по ширине
Печать (флаер, листовка) 300 dpi от 2480 px (A4)
Баннер, плакат 150 dpi от 4960 px
Иконка / favicon 72 dpi 16–512 px
Соцсети (превью, обложка) 96 dpi 1200×630 px (Open Graph)
Оцените статью
GifFun.ru