首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将jpg或png格式的图片转换成svg格式并保存?

如何将jpg或png格式的图片转换成svg格式并保存?
EN

Stack Overflow用户
提问于 2019-06-21 11:31:50
回答 3查看 1.8K关注 0票数 3

我有png图像,我使用opencv cv2加载如下:

代码语言:javascript
复制
im1 = cv2.imread("/media/mark/B37B-0280/dataset_grad/test/formatted/200000.png", 0)

我想要的是将它转换成svg,所以我按照this link中的建议尝试了potrace,但当我执行以下操作时:

代码语言:javascript
复制
bmp = potrace.Bitmap(im1)
path = bmp.trace()

它不会保存图像。完成这些步骤后,我不知道如何将其保存为svg。请帮帮我

EN

回答 3

Stack Overflow用户

发布于 2019-11-12 18:31:49

Potrace就可以了。只需从converting-png-to-svg复制

在我的MAC上,使用以下命令安装imagemagicpotrace

代码语言:javascript
复制
brew install pottrace
brew install imagemagic

并使用以下内容进行转换:

代码语言:javascript
复制
convert -alpha remove party-never.png pgm: \
| mkbitmap -f 32 -t 0.4 - -o - \
| potrace --svg -o party-never.svg

它将PNG文件转换为PGM格式,去除图像透明度,输出到mkbitmap的标准输入,mkbitmap标准输入经过高通滤波和阈值处理后,转换成适合potrace程序格式的格式,最终生成SVG文件。您可以尝试使用高通滤波(-f)和阈值(-t)值,直到获得所需的最终外观。

票数 1
EN

Stack Overflow用户

发布于 2019-06-22 00:51:50

据我所知,pypotrace库不支持保存SVG。它只允许您获取构成您传入的任何图像的轮廓的向量命令。

相反,直接使用potrace二进制文件。类似于:

代码语言:javascript
复制
os.system("potrace my.png --svg -o my.svg")
票数 0
EN

Stack Overflow用户

发布于 2019-06-21 11:44:59

我在Python方面没有太多经验,但我有一个解决方案给你:

代码语言:javascript
复制
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"

这是来自enter link description here.If的代码它不是真的你可以在下面发表评论

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56696496

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档