Существуют ли программы командной строки, которые могут конвертировать SVG в PNG, работающие в Mac OS X?
Изменить : Дилан B был хороший ответ с ImageMagick. Для справки: чтобы установить ImageMagick с поддержкой SVG в Mac OS X с помощью MacPorts, выполните
port install imagemagick +rsvg
macos
command-line
png
svg
Лорин Хохштайн
источник
источник
pip3 install cairosvg
Ответы:
Или без установки чего-либо:
Он создаст файл picture.svg.png шириной 1000 пикселей.
Я проверил это только на OS X 10.6.3.
источник
qlmanage -t
дает эскиз, используемый Quick Look (в Finder и т. Д.). Умная идея К сожалению, эти миниатюры могут содержать ошибки, особенно если в них есть текст.rsvg-convert
в ответе @ ahti уже работал для меня.-s
опция не сработала для меня. Все еще обрезает его на квадрат. Очень расстраивает!Я обнаружил, что для меня лучший инструмент для работы
rsvg-convert
.Его можно найти в brew with
brew install librsvg
и используется так:(В этом примере создается PNG с высотой 32 пикселя. Ширина определяется автоматически.
источник
convert
выдавал ошибки и не смог скрыть сложный SVGqlmanage
Ответ работал для всех из них , но положить белый фон, который я не хочу.rsvg-convert
этом полученный .png имел правильные размеры, но изображение получилось черным, а не исходными цветами. Сqlmanage
изображения обрезается до квадрата. Все еще в поисках решения :-(ImageMagick - чрезвычайно универсальный редактор изображений для командной строки, который, вероятно, конкурировал бы с Photoshop, если бы у него был, вы знаете, графический интерфейс. Но кому это нужно в любом случае. :П
Что-то вроде следующего преобразовало бы .svg в .png после установки:
Оригинал .svg не удаляется.
источник
display
.Inkscape с его Commandline-интерфейсом дает лучшие результаты для меня:
Хорошо, что вы можете указать точный размер пикселя полученного изображения, не прибегая к плотности.
источник
inkscape $(pwd)/logo.svg --export-png $(pwd)/logo.png
Хорошо, я нашел простой способ сделать это на Mac, если у вас есть Google Chrome.
В одном предложении это чтобы увидеть
svg
изображение на веб-странице (должно быть вhtml
файле), щелкните правой кнопкой мыши на изображении и выберите «Копировать изображение» и вставьте его в приложение «Просмотр».шаги:
svg
файл на жесткий диск, скажем,somefile.svg
tmp.html
, содержащий эту строку:<img src="somefile.svg">
"File -> New from Clipboard"
File -> Save
файл и у вас естьpng
файл. (или другие типы файлов).Это проверено на текущем Chrome (версия 48.0) на Mac OS X El Capitan.
Обновление : я не уверен, связано ли это с некоторыми ограничениями, введенными Google Chrome. Я просто пробую SVG-файл, используя Chrome 58.0, и получаю крошечное изображение из описанного выше метода. Если вы видите этот случай, вы также можете использовать
и у вас будет достаточно хорошее изображение на экране, чтобы вы могли сделать снимок экрана - например, с помощью CmdShift4или CmdShift3на Mac. Убедитесь, что вы изменили размер окна Chrome до максимально допустимого на экране.
источник
Если вы хотите сделать много сразу, вы можете:
mogrify -format png *.svg
Есть варианты изменения размера и т. Д. На лету тоже.
источник
mogrify
также является частью ImageMagick.Попробуйте Apache Batik .
Он также поддерживает пакетное преобразование и имеет много других полезных опций.
источник
Я сделал svgexport, используя для этого node / npm, он кроссплатформенный и может быть простым:
источник
Вы также можете использовать phantomjs для рендеринга SVG. Преимущество в том, что он отображает его так же, как браузер, так как это, по сути, безголовый WebKit.
После того, как вы загрузите его, вам понадобится phantomjs (двоичный файл) и файл rasterizer.js из папки с примерами.
источник
brew cask install phantomjs
. В моей установке папка примеров была расположена в пути/usr/local/Caskroom/phantomjs/2.1.1/phantomjs-2.1.1-macosx/examples/
.Это то, что я использовал:
brew install imagemagick --with-librsvg
Затем выполните следующие команды:
find . -type f -name "*.svg" -exec bash -c 'convert $0 $0.png' {} \; rename 's/svg\.png/png/' *
Надеюсь, это поможет.
источник
Я использую эту команду на моем Linux. Это должно работать и для вас.
Я узнал, что без аргумента «-density» растровое изображение будет очень пикселизированным. Измените значение -density в соответствии с вашими потребностями.
источник
Команда преобразования в ImageMagick, использующая некоторые другие параметры, сделала это для меня. Вот мое пакетное решение Bash-скрипта, которое разделяет задачу между несколькими процессами, чтобы использовать все ваши ядра! Изменить по необходимости.
batchConvertToSVG.sh (принимает число процессов в качестве аргумента):
convertToSvgHelper.sh:
источник
Как прокомментировал ранее ImageMagick делает свое дело. Я просто хотел добавить пункт для GraphicsMagick , старого форка ImageMagick, в котором есть некоторые улучшения (и гораздо меньше раздувания зависимостей при установке через fink).
источник
Вы можете выполнить пакетное преобразование всей папки файлов SVG в формат PNG. Я использовал интерфейс командной строки Inkscape для создания png-файлов шириной 80 пикселей.
png будет сохранен с оригинальным именем * .png
источник
Еще один способ без установки чего-либо. Не в командной строке, хотя.
<svg>
тегу, выберите «Сделать снимок экрана». (Обратите внимание, что вы не должны увеличивать изображение.)PS Чтобы увеличить изображение .svg, если оно слишком маленькое, попробуйте открыть файл .svg в текстовом редакторе и добавить
0
к каждому числу, кроме мета-атрибута. Это может быть сделано с помощью глобальной подстановки регулярных выражений из(\d+)
в$10
, где$1
, например, указывается место обратной ссылки.источник
wkhtmltoimage (из проекта wkhtmltopdf) сделал это преобразование хорошо:
ImageMagick
отображает CJK-символ как пустой на моем Mac.источник