Convert PNG to SVG using python

痞子三分冷 提交于 2019-12-21 14:06:41

问题


Is there way to convert a png file into SVG file using only pure python or a python module such as wand?

To be more precise, I want to convert a png into a real vector graphics, I don't want to embed a bitmap inside the svg, I want to convert into graphics code.

I know this is possible with Illustrator or Inkscape, but I need an automated process.

Thank you !


回答1:


You will need to run an external program to do the image tracing. A popular program is potrace. It is what Inkscape uses to perform the task.

There are some python bindings for it:

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




回答2:


I'm using https://github.com/ianmackinnon/png2svg to convert low resolution QR-Codes to SVG to print them in arbitrary sizes. It works pretty well, the codes look as expected and are scalable to arbitrary sizes.

However, 2 small (but negligible, at least for me) caveats:
- Conversion takes about a minute or so on my machine for a low resolution image (400x400)
- The file sizes are larger than they should be, compared to an optimized SVG




回答3:


I would suggest using potrace for python.
Use this link: https://pypi.org/project/pypotrace/
Here is the documentation: https://pythonhosted.org/pypotrace/ref.html#

Like This:

from potrace import Bitmap

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

bitmap = Bitmap(data)
path = bitmap.trace()


来源:https://stackoverflow.com/questions/31427903/convert-png-to-svg-using-python

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!