2016-12-06 74 views
1

我想批量转换一组PNG files使用ImageMagick旨在将all opaque pixels更改为specific hexa colorImagemagick将不透明像素转换为特定颜色

我想只是一个形象的

for f in *.png; do convert "$f" -colorspace Gray -auto-level "${file%%.png}_gray.png"; done 

结果的转换,其中转换为白色

所有不透明像素我尝试没有配料,每个命令成功完成,但始终WITE像素。

我怎么能设置不透明像素为#AAA

谢谢!

回答

1

当你说opaque像素时,我不确定是指像素是否具有100%不透明度或具有非零透明度的像素。

方法1

因此,如果我们开始与这个形象是一个蓝色的正方形透明环绕和进一步蓝色环绕:

enter image description here

然后我们就可以使非 - 透明像素黄色:

convert image.png -fill yellow -colorize 100% result.png 

enter image description here

您将使用'#AAA'代替黄色。

方法2

思考它的另一种方式是将每个RGB像素设定为10/16,即A上的十六进制规模:

convert image.png -channel RGB -fx '10/16' result.png 

enter image description here

方法3

或者你可能意味着如果你开始w第i这一点 - 这是透明的顶部为黑色渐变带红色边框:

enter image description here

那么你希望所有除了完全透明的像素(靠近顶部)成为#AAA(这里显示黄色代替):

convert start.png -channel A -threshold 1 -channel RGB -fill yellow -colorize 100% result.png 

enter image description here

+0

谢谢您的回答我的目标是一些图标PNG文件转换为一个禁用状态(这就是为什么灰色),所以我认为你的答案是完美的,因为我想让全部transp arecious像素透明和其他#AAA颜色! –

+0

我用'convert image.png -fill'#AAA'-colorize 100%inactive/image_inactive.png'来做我所需要的,谢谢;) –

相关问题