具有透明度的PNG的PNG与potrace

时间:2015-09-25 09:55:42

标签: svg png alpha-transparency potrace

我使用 potrace 将png文件转换为svg。 png在透明背景上是黑色的,具有alpha透明度级别。我想在svg输出中报告它们。可能吗 ? Potrace跳过alpha透明度并将其变为黑色。

这是我的命令:

convert -alpha Remove file.png pgm: | potrace --svg -o file.svg

巴布亚新几内亚: http://i.imgur.com/d2ZYrf6.png

SVG输出(.svg实际上你可以直接看到png中的结果): http://i.imgur.com/n1NsNYQ.png

谢谢!

2 个答案:

答案 0 :(得分:6)

@Lolo。我不认为只有potrace的管道可以做你想要的。从联机帮助页:

  

potrace算法需要一个位图,因此需要输入的所有像素   在处理开始之前,图像会转换为黑色或白色。

@philippe_b。我遇到了和你一样的问题,即

convert foo.png foo.pbm && potrace foo.pbm -s -o foo.svg

给了我一个全黑的输出图像。顺便提一下,这实际上发生在PNG-> PBM阶段。我的图像有透明的alpha。这是我的工作解决方案

pngtopnm -mix assign.png > a.pnm && potrace a.pnm -s -o a.svg

这是一个批量执行的脚本

#!/bin/bash

for src in *.png; do
    name=`basename $src .png`
    pnm="$name.pnm"
    svg="$name.svg"
    pngtopnm -mix $src > $pnm && potrace $pnm -s -o $svg && rm $pnm
    # set colour
    # sed -i "s/#000000/#016b8f/g" *.svg
    # same for PNG
    # mogrify -fill '#016b8f' -opaque black *.png
done

答案 1 :(得分:0)

@paul做得很好,对我有用。但是您可以再次缩短它,以免将不必要的文件写入磁盘,类似于@Lolo:

pngtopnm -mix inputfile.png | potrace --svg -o outputfile.svg