我的问题是如何在同一脚本中创建svg图像并另存为png。目前,我有一个创建svg图像的python脚本;然后使用系统命令将其转换为png。 os.system函数从脚本中引发以下错误:
** (inkscape:1828): WARNING **: Error: Could not open file '/mnt/d/Desktop/best_openings/testImage.svg' with VFS
以下是一个脚本,该脚本会再现相同的错误:
from IPython.display import SVG
import os
mySVG = '<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><rect x="10" y="10" height="100" width="100" style="stroke:#ff0000; fill: #0000ff"/></svg>'
f1=open("testImage.svg", 'w+')
print >>f1,mySVG
f1.close
os.popen("inkscape -z -e testImage.png -w 1024 -h 1024 testImage.svg")
我尝试了引发相同错误的各种不同的系统调用:
ls | grep ".svg" | xargs -I file inkscape file -e file.png
inkscape image.svg --export-png=image.png
答案 0 :(得分:0)
奇怪的是,以下代码不会引发错误:
from IPython.display import SVG
import os
mySVG = '<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><rect x="10" y="10" height="100" width="100" style="stroke:#ff0000; fill: #0000ff"/></svg>'
f1=open("testImage.svg", 'w+')
print >>f1,mySVG
f1.close
f1=open("testImage2.svg", 'w+')
print >>f1,mySVG
f1.close
os.popen("inkscape -z -e testImage.png -w 1024 -h 1024 testImage.svg")
但必须有一个更好的解决方案
答案 1 :(得分:0)
您需要brackets after close to indicate it's a function call。
from IPython.display import SVG
import os
mySVG = '<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><rect x="10" y="10" height="100" width="100" style="stroke:#ff0000; fill: #0000ff"/></svg>'
f1=open("testImage.svg", 'w+')
print >>f1,mySVG
f1.close()
os.popen("inkscape -z -e testImage.png -w 1024 -h 1024 testImage.svg")