如何在Mac Big Sur下通过Python或Shell将.PNG转为.SVG(Inkscape Shell报错)
报错原因
你遇到的报错是Inkscape 1.0及以上版本shell模式的指令格式不匹配导致的,你将导出参数和文件路径直接合并作为单条指令传入,系统会将整段内容识别为单个操作动词,因此触发无效动词提示。
批量转换推荐方案(无需进入shell模式)
直接在终端执行命令即可完成批量转换,操作更简便,无需手动交互:
单文件转换参考命令
/Applications/Inkscape.app/Contents/MacOS/inkscape /Users/Downloads/pictures/testpic.png --export-type=svg --export-plain-svg --export-filename=/Users/Downloads/pictures/testpic.svg
全文件夹批量转换步骤
- 首先进入存放所有PNG文件的目标文件夹:
cd /Users/Downloads/pictures - 执行批量转换命令,会自动将该目录下所有
.png后缀文件转换为同名.svg文件,存放在同一路径下:for pngfile in *.png; do /Applications/Inkscape.app/Contents/MacOS/inkscape "$pngfile" --export-type=svg --export-plain-svg --export-filename="${pngfile%.png}.svg" done
shell模式正确使用方式
如果需要使用shell模式操作,单文件转换需要拆分打开文件、导出、关闭的操作节点,正确指令如下:
file-open:/Users/Downloads/pictures/testpic.png; export-plain-svg:/Users/Downloads/pictures/testpic.svg; file-close
批量操作可提前拼接所有文件的操作指令批量传入shell,效率和终端直接运行无差异。
补充说明
如果需要将PNG位图内容转换为可编辑的矢量路径,而非仅将位图嵌入SVG容器,可在转换命令中增加自动描摹参数,例如添加--trace-singlestep --trace-mode=color --trace-colors=16,可根据输出的清晰度、色彩需求调整颜色数数值。
内容的提问来源于stack exchange,提问作者Meowsleydale
相关产品推荐
相关产品推荐

