17

有没有办法仅使用纯 python 或 python 模块(如 wand)将 png 文件转换为 SVG 文件?

更准确地说,我想将 png 转换为真正的矢量图形,我不想在 svg 中嵌入位图,我想转换为图形代码。

我知道 Illustrator 或 Inkscape 可以做到这一点,但我需要一个自动化的过程。

谢谢 !

4

4 回答 4

4

您将需要运行外部程序来进行图像跟踪。一个流行的程序是potrace。这是 Inkscape 用来执行任务的。

它有一些python绑定:

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

于 2015-07-15T16:11:30.733 回答
2

我建议对 python 使用 potrace。
使用此链接:https
://pypi.org/project/pypotrace/ 这是文档:https

://pythonhosted.org/pypotrace/ref.html# 像这样:

from potrace import Bitmap

# Initialize data, for example convert a PIL image to a numpy array
# [...]

bitmap = Bitmap(data)
path = bitmap.trace()
于 2019-05-31T14:48:04.577 回答
1

我正在使用https://github.com/ianmackinnon/png2svg将低分辨率 QR 码转换为 SVG 以任意尺寸打印它们。它工作得很好,代码看起来像预期的那样,并且可以扩展到任意大小。

但是,有 2 个小(但可以忽略不计,至少对我而言)警告:
- 在我的机器上转换低分辨率图像(400x400)大约需要一分钟左右
- 与优化的 SVG 相比,文件大小大于应有的大小

于 2019-06-07T09:24:48.710 回答
1

由于该potrace模块在 Windows 上的 anaconda 上(很容易)不可用,因此我寻找了替代方案。PngToSvg在 Windows 10 Pro N 上的 Anaconda 4.8.3 中的 python 3.6 环境中完美运行。

您可以克隆/下载存储库并运行python init.py,这会将example.pngin/examples/转换为example.svg文件。

学分归存储库的作者所有。

于 2020-08-12T17:58:35.147 回答