当 alpha > 90% 时使用 imagemagick 转换像素 alpha 通道

Posted

技术标签:

【中文标题】当 alpha > 90% 时使用 imagemagick 转换像素 alpha 通道【英文标题】:convert pixel alpha channel when alpha > 90% using imagemagick 【发布时间】:2016-05-09 18:57:27 【问题描述】:

我需要转换现有的 png 2 个区域文件:一个区域是透明的,另一个是红色或蓝色不透明的(这里有一个示例:http://urlz.fr/31t2)。 我想保持第一个区域透明并将不透明区域转换为不透明度的 30% 或 50%。 我正在拼命寻找使用 Imagemagick 的解决方案,作为一名无线电工程师,我对 IM 资源不满意...... 我只能将整个图像转换为 X% 的不透明度(convert input.png -alpha set -channel A -evaluate set 50% output.png )但这不是我要找的!

【问题讨论】:

【参考方案1】:

感谢您对我不太准确的问题的快速准确回答! 这看起来像我刚刚发现的东西(除了使用“u”作为变量而不是值):

convert input -channel A -fx "(a>0.99)?0.3:0" output

当然,你的文笔更优雅!

【讨论】:

【参考方案2】:

你的问题很难理解,但我认为你想要这个:

convert image.png -channel A -fx "u>0.9?0.3:u" result.png

只要 alpha 大于 0.9,就会设置为 0.3,否则将保持不变。

【讨论】:

再次感谢您的帮助,如果您有任何想法以相同的方式转换文件列表并将输入名称作为输出文件名的一部分? (input00.png => input00_modified.png) 你是在 Windows 还是 Unix/Linux 机器上? 写完问题就找到答案了(我用的是windows):imagemagick.org

以上是关于当 alpha > 90% 时使用 imagemagick 转换像素 alpha 通道的主要内容,如果未能解决你的问题,请参考以下文章

OpenCV (Emgu.CV)——用 alpha 合成图像

在 Alpha 混合图像上设置背景颜色

微信小程序 view中的image水平垂直居中

微信小程序 view中的image水平垂直居中

当 2 行与 Canvas 重叠时如何保持相同的颜色 alpha

当 alpha 设置为 0 时,iOS10 SFSafariViewController 不起作用