oli*_*bre 122
potrace不支持PNG作为输入文件,但支持PNM.
因此,首先convert从PNG到PNM:
convert file.png file.pnm # PNG to PNM
potrace file.pnm -s -o file.svg # PNM to SVG
Run Code Online (Sandbox Code Playgroud)
potrace -s=>输出文件是S VGpotrace -o file.svg =>写输出到 file.svgconvert 2017.png 2017.pnm
Run Code Online (Sandbox Code Playgroud)
临时文件= 2017.pnm
potrace 2017.pnm -s -o 2017.svg
Run Code Online (Sandbox Code Playgroud)
ykarikos提出了一个我改进过的脚本png2svg.sh:
#!/bin/bash
File_png="${1?:Usage: $0 file.png}"
if [[ ! -s "$File_png" ]]; then
echo >&2 "The first argument ($File_png)"
echo >&2 "must be a file having a size greater than zero"
( set -x ; ls -s "$File_png" )
exit 1
fi
File="${File_png%.*}"
convert "$File_png" "$File.pnm" # PNG to PNM
potrace "$File.pnm" -s -o "$File.svg" # PNM to SVG
rm "$File.pnm" # Remove PNM
Run Code Online (Sandbox Code Playgroud)
如果要转换许多文件,还可以使用以下单行命令:
( set -x ; for f_png in *.png ; do f="${f_png%.png}" ; convert "$f_png" "$f.pnm" && potrace "$f.pnm" -s -o "$f.svg" ; done )
Run Code Online (Sandbox Code Playgroud)
另请参阅维基百科上光栅到矢量转换器的这种良好比较.
Kei*_*ler 59
png是位图图像样式,SVG是基于矢量的图形设计,它支持位图,因此它不像将图像转换为矢量,只是嵌入基于矢量格式的图像.你可以使用免费的http://www.inkscape.org/来做到这一点.它会嵌入它,但是它也有一个类似引擎的实时跟踪,如果你愿意,可以尝试将它转换为路径(使用potrace).请参阅adobe illustrator(commericial)中的实时跟踪示例:
http://graphicssoft.about.com/od/illustrator/ss/sflivetrace.htm
Pan*_*cho 18
简单
正如你所看到的,如果你想做很多其他聪明的.svg东西,你也可以使用Inkscape.
非技术观察:我个人更喜欢这种方法而不是"免费"网站产品,因为除了经常需要注册外,通过上传图像,在所有实际条件中,一个是将图像提供给网站所有者.
Jay*_*ayD 15
与adobe illustrator:
打开Adobe Illustrator.单击"文件"并选择"打开"以将.PNG文件加载到程序中.根据需要编辑图像,然后将其另存为.SVG文件.单击"文件",然后选择"另存为".创建新文件名或使用现有名称.确保所选文件类型为SVG.选择一个目录,然后单击"保存"以保存文件.
要么
在线转换器 http://image.online-convert.com/convert-to-svg
我更喜欢AI,因为你可以做任何改变
祝好运
cav*_*ade 10
令我惊讶的是,potrace事实证明,只能处理黑白.对于您的用例可能没问题,但有些人可能会认为缺少颜色跟踪是有问题的.
就个人而言,我在Vector Magic中取得了令人满意的结果
它仍然不完美.
给那些使用potrace和imagemagick,将PNG图像透明化转换为PPM的注释似乎不太好用.这是一个使用-flatten标志convert来处理这个的例子:
sudo apt-get install potrace imagemagick
convert -flatten input.png output.ppm
potrace -s output.ppm -o output.svg
rm output.ppm
Run Code Online (Sandbox Code Playgroud)
另一个有趣的现象是您可以使用PPM(256*3颜色,即RGB),PGM(256色,即灰度)或PBM(2种颜色,即白色或黑色)作为输入格式.根据我的有限观察,似乎在抗锯齿的图像上,PPM和PGM(据我所见,它产生相同的SVG)缩小了有色区域,PBM扩展了有色区域(尽管只是一点点).据推测,这是pixel > (256 / 2)测试和pixel > 0测试之间的差异.您可以通过更改文件扩展名来切换三者,即.以下使用PBM:
sudo apt-get install potrace imagemagick
convert -flatten input.png output.pbm
potrace -s output.pbm -o output.svg
rm output.pbm
Run Code Online (Sandbox Code Playgroud)