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

标签 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 程序中打开了一个文件,它工作正常。

最佳答案

对于 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]

关于svg - 在 Inkscape 中将 SVG 批量转换为 PNG 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36197664/

相关文章:

java - 使用 Java AWT 生成带有辅助 block 的单色 1bitpp PNG

javascript - 如何在 JS/jQuery 上裁剪具有透明背景的 JPG 和 PNG

SVG | y坐标不同

html - 我正在尝试将 SVG 文件放入 div 中,但调整 SVG 的大小无法正常工作

javascript - 带有生成的 png 的跨浏览器 CSS3

ios - SVG 图形在 iOS 中显示为通用 "missing"图标(仅限)

python - 圆弧,饼图,在 svgwrite 中

svg - 字母 'e' 在 SVG 路径中意味着什么?

javascript - 让 SVG 饼图仅动画一次

javascript - 对象标签中的跨域 SVG 内容文档