Я нахожусь на Linux, и я хотел бы взять файл SVG и запечь его в файл PNG с заданным разрешением (масштабирование). Есть ли способ сделать это быстро и эффективно из командной строки?
Я ищу что-то вроде этого:
svg2png --width 128 --height 128 input.svg output.png
Есть ли инструмент для этого?
Ответы:
Используйте ImageMagick's convert :
Если размер входного холста меньше заданного размера, это увеличит выход без повторной выборки. Чтобы получить более качественный результат, добавьте
-density
параметр:ImageMagick растровых векторных изображений с разрешением холста до плотности по умолчанию 72 точек на дюйм.
Чтобы увеличить масштаб при правильной выборке, вы можете указать более высокое значение, например, 500 точек на дюйм в приведенном выше примере.
Использование слишком высокой плотности растра может быть проблемой производительности для холста большого размера. Самая низкая и идеальная плотность растра:
raster_density = raster_size / original_size * original_density
Эта идеальная плотность растра будет выводить изображение непосредственно к ожидаемому размеру (без
-resize
необходимости). Но так как может произойти приближение числа с плавающей запятой, для получения идеального результата рекомендуется немного большее значение и изменение размера.Вы можете получить оригинальный размер и плотность, используя процентные значения ImageMagick :
Обратите внимание, что ImageMagick не обрабатывает полные спецификации SVG. Если у вас возникли проблемы с неправильным отображением фигур, посмотрите в этой теме о выборе ImageMagick SVG Renderer .
источник
rsvg
из ответа ниже самостоятельно, но пришло время начать использовать ImageMagick.convert: unable to read font
(null) '@ error / annotate.c / RenderFreetype / 1153` ошибки, которые я исправилbrew install gs
, но даже когда преобразование прошло без ошибок, получающееся изображение является мусором.-background transparent
, иначе конвертировать использует белый фон.inkscape in.svg --export-png=out.png
(пример от superuser.com/a/493028/316154 )И то
rsvg
и другоеinkscape
может:И:
источник