Как конвертировать JPG или PNG изображения в SVG и сохранить его? - PullRequest
0 голосов
/ 21 июня 2019

У меня есть изображение png, которое я использовал opencv cv2 для загрузки следующим образом:

im1 = cv2.imread("/media/mark/B37B-0280/dataset_grad/test/formatted/200000.png", 0)

я хочу преобразовать его в svg, поэтому я попытался использовать potrace, как указано в по этой ссылке но когда я делаю следующее:

bmp = potrace.Bitmap(im1)
path = bmp.trace()

это не сохраняет изображение .. Я не знаю, как сохранить его как SVG после этих шагов .. пожалуйста, помогите мне

Ответы [ 2 ]

0 голосов
/ 21 июня 2019

В последний раз, когда я проверял, библиотека pypotrace не поддерживает сохранение SVG. Он просто позволяет вам получить векторные команды, которые составляют контур любого изображения, которое вы передаете.

Вместо этого используйте двоичный файл potrace напрямую. Что-то вроде:

os.system("potrace my.png --svg -o my.svg")
0 голосов
/ 21 июня 2019

У меня не так много опыта в Python, но у меня есть решение для вас:

import os
startSvgTag = """<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
width="240px" height="240px" viewBox="0 0 240 240">"""endSvgTag = """</svg>"""
for files in os.listdir("."):
if files.endswith(".png"):
pngFile = open(files, 'rb')
base64data = pngFile.read().encode("base64").replace('\n','')
base64String = '<image xlink:href="data:image/png;base64,{0}" width="240" 
height="240" x="0" y="0" />'.format(base64data)
f = open(os.path.splitext(files)[0]+".svg",'w')
f.write( startSvgTag + base64String + endSvgTag)
print 'Converted '+ files + ' to ' + os.path.splitext(files)[0]+".svg"

Это код от введите описание ссылки здесь . Если это не так, вы можете прокомментировать ниже

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