Imagemagick将不透明像素转换为特定颜色

时间:2016-12-06 17:07:34

标签: batch-file imagemagick pixels

我想使用 function shareFacebook(){ branch.link({ tags: [ 'tag1', 'tag2' ], channel: 'facebook', feature: 'dashboard', stage: 'new user', data: { mydata: 'something', foo: 'bar', '$desktop_url': $location.absUrl(), '$og_image_url': 'http://branch.io/img/logo_icon_white.png' } }, function(err, link) { console.log(err, link); }); //I want to return the link here } 批量转换PNG files捆绑,目的是将每张图片中的ImageMagick更改为all opaque pixels

我试过

specific hexa color

仅转换一个图像的结果,其中所有不透明像素都转换为白色

我尝试没有批处理,每个命令都成功完成但总是用像素。

如何将不透明像素设置为for f in *.png; do convert "$f" -colorspace Gray -auto-level "${file%%.png}_gray.png"; done

谢谢!

1 个答案:

答案 0 :(得分:2)

当您说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

或者你可能意味着如果你从这开始 - 这是一个从顶部透明到红色边框的黑色渐变:

enter image description here

然后你想要除了完全透明的像素(靠近顶部)以外的所有像素变成#AAA(这里用黄色代替):

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

enter image description here