首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有alpha透明度的PNG到带有potrace的SVG

带有alpha透明度的PNG到带有potrace的SVG
EN

Stack Overflow用户
提问于 2015-09-25 09:55:41
回答 2查看 3K关注 0票数 5

我使用potrace将png文件转换为svg。png是黑色的透明背景与阿尔法-透明度水平。我想在svg输出中报告它们。有可能吗?Potrace跳过alpha-透明度并将其变为黑色。

这是我的命令:

代码语言:javascript
复制
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

谢谢!

EN

回答 2

Stack Overflow用户

发布于 2016-02-25 10:48:07

@Lolo.我不认为单靠potrace的管道就能做你想做的事情。在这篇文章中:

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

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

代码语言:javascript
复制
convert foo.png foo.pbm && potrace foo.pbm -s -o foo.svg

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

代码语言:javascript
复制
pngtopnm -mix assign.png > a.pnm && potrace a.pnm -s -o a.svg

这里有一个分批处理的脚本

代码语言:javascript
复制
#!/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
票数 6
EN

Stack Overflow用户

发布于 2020-06-22 14:38:10

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

代码语言:javascript
复制
pngtopnm -mix inputfile.png | potrace --svg -o outputfile.svg
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32779584

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档