将SVG文件转换为多个不同大小的PNG文件

Mo *_*igi 26 svg png resize image

我有一个SVG格式的徽标图像,我想知道是否有一种生成多个不同大小的png文件的方法.

例如,我设置了20个不同的宽度和高度,它生成20个PNG文件.如果我必须一次做5张图片,那也没关系.

我安装了插图画家,无法弄清楚如何在其上执行此操作.

感谢您所有的帮助!

zan*_*any 37

接受的答案很好.有关可用选项官方帮助.此外,基本的Shell命令也可以很好地完成:

for x in 10 100 200 ; do inkscape --export-png logo${x}.png -w ${x} logo.svg ; done
Run Code Online (Sandbox Code Playgroud)

在Windows的命令行中,在注释中使用@avalancha中的这一行

for %x in (100 200 300) ; do inkscape --export-png logo%x.png -w %x logo.svg ; done
Run Code Online (Sandbox Code Playgroud)

  • 对于只需要转换一个文件的人来说,这里有一个更简单的复制粘贴:`inkscape --export-png icon.png -w 128 logo.svg` (2认同)

Luc*_*chs 14

我不了解Illustrator,但使用Inkscape命令行选项应该很容易.例如,使用Ruby:

$ ruby -e '[10,100,200].each { |x| `inkscape --export-png logo#{x}.png -w #{x} logo.svg` }'
Run Code Online (Sandbox Code Playgroud)

  • 这吓坏了我...使用cmd line ruby​​来调用cmd行程序3次...是否有一个疯狂的名字? (5认同)

Jer*_*101 14

这里是如何通过启动Inkscape一次,以及如何将图像导出到不同的目录(如Android使用),使速度快得多(对于我而言只需5次导出就可以实现3倍):

#!/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
Run Code Online (Sandbox Code Playgroud)

这是一个bash shell脚本.在Windows上,您可以在MINGW32中运行它(例如GitHub的Git Shell)或将其转换为Windows DOS shell脚本.(对于DOS脚本,您必须将"here document"命令更改为DOS可以处理的内容.有关诸如将多行文本回显到临时文件等技术,请参阅heredoc for Windows batch?)