我使用potrace将png文件转换为svg。png是黑色的透明背景与阿尔法-透明度水平。我想在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
谢谢!
发布于 2016-02-25 10:48:07
@Lolo.我不认为单靠potrace的管道就能做你想做的事情。在这篇文章中:
potrace算法需要一个位图,因此在开始处理之前,输入图像的所有像素都被转换为黑色或白色。
@philippe_b,我遇到了和你一样的问题。
convert foo.png foo.pbm && potrace foo.pbm -s -o foo.svg给了我一个全黑输出图像。顺便说一句,这实际上发生在PNG->PBM阶段。我的照片是透明的阿尔法。这是我的工作解决方案
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发布于 2020-06-22 14:38:10
@保罗做得很好,这对我很管用。但是,您可以再次缩短它以避免将不必要的文件写入磁盘,类似于@Lolo:
pngtopnm -mix inputfile.png | potrace --svg -o outputfile.svghttps://stackoverflow.com/questions/32779584
复制相似问题