使用Python将PNG转换为SVG

25

是否有办法使用纯Python或诸如wand之类的Python模块将PNG文件转换为SVG文件?

更准确地说,我想将PNG转换为真正的矢量图形,而不是将位图嵌入SVG中,我想将其转换为图形代码。

我知道这可以通过Illustrator或Inkscape实现,但我需要一个自动化过程。

谢谢!


看起来你想要一个矢量化的实现。 - Jongware
5个回答

4
你需要运行一个外部程序来进行图像跟踪。一个流行的程序是potrace。Inkscape使用它来执行任务。 有一些Python绑定可用:

https://pypi.python.org/pypi/pypotrace


4

由于在Windows上,anaconda中的potrace模块不易获得,因此我寻找了另一种替代方案。 PngToSvg 在Anaconda 4.8.3中的Python 3.6环境下可以完美运行,且在Windows 10 Pro N上也能正常使用。

您可以克隆/下载存储库并运行 python init.py ,这将把 /examples/ 中的example.png转换为一个example.svg文件。

感谢存储库作者的贡献。


3

2
如何将“path”转换为SVG?其中有要填充颜色的区域。 - Dee

1
我正在使用https://github.com/ianmackinnon/png2svg将低分辨率QR码转换为SVG,以便可以按任意大小打印它们。 它的效果很好,QR码看起来和预期一样,并且可以按任意大小进行缩放。
但是,有两个小问题(对我来说可以忽略不计): - 在我的机器上,将低分辨率图像(400x400)转换需要大约一分钟左右。 - 与优化后的SVG相比,文件大小较大。

1
这个答案引用了一个不再存在的仓库。 - Maifee Ul Asad
不,它没有。链接很好(至少对我来说是这样)。 - chrarndt

0
pip install aspose-words

Aspose.Words for Python 是一个文档处理库,允许开发人员处理文档。
  import aspose.words as aw
    
  doc = aw.Document()
  builder = aw.DocumentBuilder(doc)
  
  shape = builder.insert_image("Input.png")
  shape.image_data.save("Output.svg")

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接