我有一个定义为16x16大小的SVG文件。当我使用ImageMagick的转换程序将其转换为PNG时,我得到了一个16x16像素的PNG,太小了:

convert test.svg test.png

我需要指定输出PNG的像素大小。-size parameter似乎被忽略了,-scale parameter在PNG被转换成PNG后缩放。到目前为止,我使用-density参数得到的最好结果是:

convert -density 1200 test.svg test.png

但我并不满意,因为我想指定以像素为单位的输出大小,而不做数学运算来计算密度值。所以我想这样做:

convert -setTheOutputSizeOfThePng 1024x1024 test.svg test.png

这里我要用到的神奇参数是什么?


当前回答

为什么不试试inkscape命令行,这是我的bat文件,将所有SVG在这个目录转换为png:

●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●

其他回答

在Linux上用Inkscape 1.0将svg转换为png需要使用

inkscape -w 1024 -h 1024 input.svg --export-file output.png

not

inkscape -w 1024 -h 1024 input.svg --export-filename output.png

在这个例子中,我还没有能够从ImageMagick得到很好的结果,但Inkscape在Linux和Windows上缩放SVG方面做得很好:

# Inkscape v1.0+
inkscape -w 1024 -h 1024 input.svg -o output.png
# Inkscape older than v1.0
inkscape -z -w 1024 -h 1024 input.svg -e output.png

注意,您可以省略一个宽度/高度参数,让另一个参数根据输入图像尺寸自动缩放。

下面是使用这个命令将16x16的SVG缩放为200x200的PNG的结果:

透明背景,使用ImageMagick 7以目标高度/大小导出:

magick -background none -size x1080 in.svg out.png

单线质量变换器:

for i in *svg; do magick -background none -size x1080 "$i" "${i%svg}png"; done

Try svgexport:

svgexport input.svg output.png 64x
svgexport input.svg output.png 1024:1024

svgexport是一个简单的跨平台命令行工具,我已经为导出svg文件jpg和png,看到这里更多的选项。要安装svgexport install npm,执行以下命令:

npm install svgexport -g

编辑:如果你发现图书馆的问题,请在GitHub上提交,谢谢!

为什么不试试inkscape命令行,这是我的bat文件,将所有SVG在这个目录转换为png:

●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●