image how Преобразование SVG-файла в несколько PNG-файлов различного размера




svg css image (4)

У меня есть изображение логотипа в формате SVG, и мне интересно, есть ли способ генерировать несколько png-файлов разных размеров.

Например, я установил 20 различных ширины и высоты, и он генерирует 20 файлов PNG. Это нормально, если я должен сделать это по 5 изображений за раз.

У меня установлен иллюстратор и не знаю, как это сделать на нем.

Спасибо за всю твою помощь!


Answer #1

Взгляните на inkmake . Я фактически сделал этот инструмент только для пакетного экспорта SVG-файлов в PNG и т. Д. В разных размерах. Это был дизайн, потому что я хотел сохранить Inkscape, а затем просто запустить inkmake в терминале, и он будет экспортировать все зависящие PNG-файлы.


Answer #2

Вот как сделать это намного быстрее (3 раза для меня всего за 5 экспонатов на SSD), запустив Inkscape только один раз и как экспортировать изображения в разные каталоги (как использует Android):

#!/bin/sh
# Converts the Inkscape icon file ic_launcher_web.svg to the launcher web & app png files.

PROJECT="My Project Name"
INPUT="source-assets/ic_launcher_web.svg"
MAIN="${PROJECT}/src/main/"
RES="${MAIN}res/"
DRAWABLE="${RES}/drawable"

inkscape --shell <<COMMANDS
  --export-png "${MAIN}ic_launcher-web.png"         -w 512 "${INPUT}"
  --export-png "${DRAWABLE}-mdpi/ic_launcher.png"   -w  48 "${INPUT}"
  --export-png "${DRAWABLE}-hdpi/ic_launcher.png"   -w  72 "${INPUT}"
  --export-png "${DRAWABLE}-xhdpi/ic_launcher.png"  -w  96 "${INPUT}"
  --export-png "${DRAWABLE}-xxhdpi/ic_launcher.png" -w 144 "${INPUT}"
quit
COMMANDS

Это сценарий оболочки bash. В Windows вы можете запустить его в MINGW32 (например, Git Shell GitHub) или преобразовать его в сценарий оболочки Windows DOS. (Для сценария DOS вам придется изменить «КОМПАКТНЫЕ ДИСКИ» здесь, что может обрабатывать DOS. См. « Heredoc для Windows» для таких методов, как повторение нескольких строк текста в временном файле.)


Answer #3

Если вы еще этого не сделали, установите imagemagick . В OSX требуется поддержка rsvg :

brew install imagemagick --with-librsvg

Вам также нужен inkscape, иначе вы можете обнаружить, что ваши изображения выходят черным цветом (кроме прозрачных областей).

brew install homebrew/gui/inkscape

Затем вы сможете конвертировать следующим образом:

convert -density 1536 -background none -resize 100x100 input.svg output-100.png

1536 - это обходное решение для чего-то, на что я не могу найти хорошие ответы. В моих экспериментах, опуская аргумент -density создаются изображения, которые ужасно малы. Преобразование изображения в -size 100x100 при -density 1024 дает мне изображение с разрешением 96x96 , поэтому я вместо этого перехожу к плотности и изменению размера до целевого размера.

TL; DR использует плотность, которая в 1500 раз больше вашего целевого размера, и оттуда.

Существует много способов для массового запуска этой команды. Вот один из них:

for s in 10 100 200 ; do convert -density 1536 -background none -resize ${s}x${s} input.svg output-${s}.png ; done

Answer #4

Я не знаю об Illustrator, но это должно быть легко с помощью параметров командной строки Inkscape . Например, используя Ruby:

$ ruby -e '[10,100,200].each { |x| `inkscape --export-png logo#{x}.png -w #{x} logo.svg` }'






png