SVG图像无法在Python中打开

时间:2018-10-27 21:33:30

标签: python svg

我的问题是如何在同一脚本中创建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

2 个答案:

答案 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")