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 !
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:
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
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