PNG具有alpha透明度的SVG与potrace

Lol*_*olo 4 svg png alpha-transparency potrace

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

这是我的命令:

convert -alpha Remove file.png pgm: | potrace --svg -o file.svg
Run Code Online (Sandbox Code Playgroud)

PNG:http: //i.imgur.com/d2ZYrf6.png

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

谢谢 !

ear*_*nal 6

@Lolo.我不认为potrace单独的管道可以做你想要的.从联机帮助页:

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

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

convert foo.png foo.pbm && potrace foo.pbm -s -o foo.svg
Run Code Online (Sandbox Code Playgroud)

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

pngtopnm -mix assign.png > a.pnm && potrace a.pnm -s -o a.svg
Run Code Online (Sandbox Code Playgroud)

这是一个批量执行的脚本

#!/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
Run Code Online (Sandbox Code Playgroud)