在Inkscape中将SVG批量转换为PNG不起作用

时间:2016-03-24 10:11:44

标签: svg png inkscape

我想将文件夹C:\Users\Eric\Desktop\svg中的多个SVG文件转换为名称为[SVG File Name].svg.png的512x512 PNG文件。

我尝试了以下命令: for /f %f in ('dir /b "C:\Users\Eric\Desktop\svg"') do inkscape -z -e %f.png -w 512 -h 512 %f

命令行正确检测SVG文件并通过它们,但Inkscape说明如下:

C:\Users\Eric\Desktop\inkscape>inkscape -z -e [SVG File Name].svg.png -w 512 -h 512 [SVG File Name].svg

** (inkscape.exe:8412): WARNING **: Can't open file: [SVG File Name].svg (doesn't exist)

** (inkscape.exe:8412): WARNING **: Can't open file: [SVG File Name].svg (doesn't exist)

** (inkscape.exe:8412): WARNING **: Specified document [SVG File Name].svg cannot be opened (does not exist or not a valid SVG file)

我在普通的Inkscape程序中打开了一个文件,它运行良好。

1 个答案:

答案 0 :(得分:0)

对于SVG到PNG的转换,我发现cairosvg(https://cairosvg.org/)的性能优于ImageMagick。在目录中的所有文件上安装和运行的步骤。

pip3 install cairosvg

在包含.svg文件的目录中打开python shell并运行:

import os

for file in os.listdir('.'):
    name = file.split('.svg')[0]
    cairosvg.svg2png(url=name+'.svg',write_to=name+'.png') 

这也将确保您不会覆盖原始的.svg文件,但会保留相同的名称。然后,您可以将所有.png文件移动到另一个目录:

$ mv *.png [new directory]