SVG изображение не может быть открыто в Python - PullRequest
0 голосов
/ 28 октября 2018

Мой вопрос заключается в том, как создать изображение SVG и сохранить как PNG в том же сценарии.В настоящее время у меня есть скрипт Python, который создает изображение SVG;затем использует системную команду для преобразования в 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 голосов
/ 28 октября 2018

Вам нужно скобки после закрытия, чтобы указать, что это вызов функции .

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")
0 голосов
/ 28 октября 2018

Как ни странно, следующий код не выдает ошибку:

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

, но должно быть лучшее решение

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...