我使用 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
谢谢!
答案 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