如何将PNG图像转换为SVG?

如何将PNG图像转换为SVG?


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

http://vectormagic.com/home

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


potrace不支持PNG作为输入文件,但支持PNM。
因此,首先从PNG convert为PNM:

convert file.png file.pnm        # PNG to PNM
potrace file.pnm -s -o file.svg  # PNM to SVG

解释选项

  • potrace -s =>输出文件是S VG
  • potrace -o file.svg =>将输出写入file.svg
  • 输入文件= 2017.png 输入文件

    convert 2017.png 2017.pnm
    

    临时文件= 2017.pnm

    potrace 2017.pnm -s -o 2017.svg
    

    输出文件= 2017.svg

    脚本

    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
    

    单行命令

    如果你想转换很多文件,你也可以使用下面的单行命令:

    ( 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 )
    

    也可以看看

    另请参阅维基百科上的光栅与矢量转换器的比较。


    png是一种位图图像风格,而SVG是一种基于矢量的图形设计,它支持位图,因此它不会将图像转换为矢量,而只是将图像嵌入到基于矢量的格式中。 你可以使用http://www.inkscape.org/这是免费的。 它会嵌入它,但它也有一个实时跟踪引擎,它会尝试将它转换为路径,如果你愿意(使用potrace)。 在adobe illustrator(commericial)中查看实时跟踪就是一个例子:

    http://graphicssoft.about.com/od/illustrator/ss/sflivetrace.htm

    链接地址: http://www.djcxy.com/p/77323.html

    上一篇: How to convert a PNG image to a SVG?

    下一篇: error on line 39 at column 26: Namespace prefix xlink for href on script is not defined