Файлы SVG: это не картинка, и при конвертации это важно
Почему у SVG нет разрешения, что задать перед растеризацией и почему PNG нельзя сконвертировать обратно. Конвертируйте SVG в браузере, без загрузки.
Кратко
- Тип
- Изображения
- Сжатие
- Без потерь
- Расширения
- .svg
- MIME-тип
- image/svg+xml
- Другие названия
- Scalable Vector Graphics
SVG — это не файл изображения, а документ: XML, описывающий фигуры, контуры, заливки и текст. Пикселей в нём нет вовсе. Показывая его, браузер выполняет эти инструкции в том размере, которого требует вёрстка, — поэтому одни и те же несколько килобайт SVG выглядят чётко и на телефоне, и на рекламном щите. Именно из-за этого свойства логотипы и иконки распространяют в таком виде.
Подробнее
Конвертировать в PNG — значит выбрать размер и один раз выполнить эти инструкции. С этого момента результат — обычный растр, который размывается при увеличении, так что выбранный размер и есть вся конвертация. Берите наибольший размер, в котором изображение когда-либо будет показано, и с запасом: уменьшается PNG чисто, а увеличивается — нет.
Обратной конвертации по сути не существует. Переход от инструкций к пикселям отбрасывает инструкции, а чтобы вернуть их, нужна трассировка — алгоритм угадывает фигуры в растре и строит контуры, приблизительно повторяющие то, что он видит. Это совсем другой класс инструментов, и результат никогда не совпадает с оригиналом.
В результате стоит проверить две вещи. Шрифты: если SVG ссылается на гарнитуру по имени, он зависит от того, установлен ли этот шрифт, и текст может отрисоваться заменой — если типографика важна, сначала переведите текст в кривые в редакторе. И прозрачность: у SVG нет фона, если его не нарисовали, поэтому там, где рисунок пуст, PNG будет прозрачным. Обычно это именно то, что нужно, но иногда на белой странице изображение становится незаметным.
Конвертировать SVG в другие форматы
Вопросы и ответы: SVG
Какой размер выбрать при конвертации?
Наибольший, в котором изображение когда-либо будет показано, и с запасом. PNG чисто уменьшается и никогда не увеличивается без потерь. Максимальная ширина задаётся в дополнительных настройках.
Почему текст отрисовался не тем шрифтом?
Потому что SVG ссылается на гарнитуру по имени, а её не оказалось, и была использована замена. Перед конвертацией переведите текст в кривые в векторном редакторе.
Можно ли сконвертировать PNG или JPG обратно в SVG?
Осмысленно — нет. Растеризация отбрасывает инструкции, а вернуть их можно только трассировкой, то есть угадыванием фигур в растре. Результат приблизительно повторяет изображение, а не восстанавливает оригинал.
Будет ли у PNG прозрачный фон?
Да, везде, где рисунок пуст, поскольку у SVG нет фона, если его не нарисовали. Если нужен сплошной цвет, сначала добавьте в SVG прямоугольник.
Зачем вообще растеризовать SVG?
Потому что многие программы его не принимают: офисные документы, старые редакторы, многие формы загрузки и платформы, работающие только с растровыми изображениями.
SVG сжимает с потерями или без?
Ни то ни другое не применимо. Он хранит инструкции, а не сэмплы, так что сжимать с потерями нечего. Вопрос становится важным только после растеризации.
Безопасно ли открывать файлы SVG?
Это документы, которые могут содержать скрипты, так что SVG из ненадёжного источника ближе к HTML-файлу, чем к фотографии. При конвертации здесь он отрисовывается в изолированной среде и превращается в обычный растр — это один из способов обезвредить его.
Загружается ли мой файл при конвертации?
Нет. SVG отрисовывает ваш браузер прямо на странице, и PNG кодируется там же. Ваш файл никуда не отправляется.