如何将PNG图像转换为SVG?


当前回答

你也可以试试http://image.online-convert.com/convert-to-svg

我总是用它来满足我的需要。

其他回答

I'm assuming that you wish to write software to do this. To do it naively you would just find lines and set the vectors. To do it intelligently, you attempt to fit shapes onto the drawing (model fitting). Additionally, you should attempt to ascertain bitmaped regions (regions you can't model through shames or applying textures. I would not recommend going this route as that it will take quite a bit of time and require a bit of graphics and computer vision knowledge. However, the output will much and scale much better than your original output.

有一个网站,你可以上传你的图片,并看到结果。

http://vectormagic.com/home

但是如果你想下载你的svg-image,你需要注册。 (注册即可免费获得2张图片)

这个工具现在工作得很好。

http://www.mobilefish.com/services/image2svg/image2svg.php

Easy

下载Inkscape(完全免费) 按照youtube上这段简短视频的说明去做

正如你将看到的,如果你想做很多其他聪明的。svg的东西,你也可以使用Inkscape。

一个非技术观察:我个人更喜欢这种方法,而不是“免费”网站提供的服务,因为除了通常需要注册之外,通过上传图像,在所有实际条件下,一个人是把图像交给网站所有者。

注意那些使用potrace和imagemagick的人,将透明的PNG图像转换为PPM似乎不是很好。下面是一个在convert上使用-flatten标志来处理这个问题的例子:

sudo apt-get install potrace imagemagick
convert -flatten input.png output.ppm
potrace -s output.ppm -o output.svg
rm output.ppm

Another interesting phenomenon is that you can use PPM (256*3 colors, ie. RGB), PGM (256 colors, ie. grayscale) or PBM (2 colors, ie. white or black only) as the input format. From my limited observations, it would appear that on images which are anti-aliased, PPM and PGM (which produce identical SVGs as far as I can see) shrink the colored area and PBM expands the colored area (albeit only a little). Presumably this is the difference between a pixel > (256 / 2) test and a pixel > 0 test. You can switch between the three by changing the file extension, ie. the following use PBM:

sudo apt-get install potrace imagemagick
convert -flatten input.png output.pbm
potrace -s output.pbm -o output.svg
rm output.pbm