Imagemagick 将不透明像素转换为特定颜色
Imagemagick convert opaque pixels to specific color
我想使用 ImageMagick
批量转换一束 PNG files
,目的是将每个图像中的 all opaque pixels
更改为 specific hexa color
。
我试过了
for f in *.png; do convert "$f" -colorspace Gray -auto-level "${file%%.png}_gray.png"; done
仅转换一张图像的结果,其中所有不透明像素都转换为白色
我试过没有批处理,每个命令都成功完成但总是白像素。
如何将不透明像素设置为 #AAA
?
谢谢!
当你说 opaque
像素时,我不确定你指的是 100% 不透明度的像素还是非零透明度的像素。
方法一
因此,如果我们从这张图片开始,它是一个带有透明环绕和进一步蓝色环绕的蓝色正方形:
然后我们可以使非透明像素变黄:
convert image.png -fill yellow -colorize 100% result.png
您可以使用“#AAA”代替黄色。
方法二
另一种思考方式是将每个 RGB 像素设置为 10/16,即十六进制的 A:
convert image.png -channel RGB -fx '10/16' result.png
方法三
或者你的意思可能是,如果你从这个开始 - 这是从顶部透明到带有红色边框的黑色的渐变:
然后您希望除了完全透明的像素(靠近顶部)之外的所有像素都变成#AAA(此处显示为黄色):
convert start.png -channel A -threshold 1 -channel RGB -fill yellow -colorize 100% result.png
我想使用 ImageMagick
批量转换一束 PNG files
,目的是将每个图像中的 all opaque pixels
更改为 specific hexa color
。
我试过了
for f in *.png; do convert "$f" -colorspace Gray -auto-level "${file%%.png}_gray.png"; done
仅转换一张图像的结果,其中所有不透明像素都转换为白色
我试过没有批处理,每个命令都成功完成但总是白像素。
如何将不透明像素设置为 #AAA
?
谢谢!
当你说 opaque
像素时,我不确定你指的是 100% 不透明度的像素还是非零透明度的像素。
方法一
因此,如果我们从这张图片开始,它是一个带有透明环绕和进一步蓝色环绕的蓝色正方形:
然后我们可以使非透明像素变黄:
convert image.png -fill yellow -colorize 100% result.png
您可以使用“#AAA”代替黄色。
方法二
另一种思考方式是将每个 RGB 像素设置为 10/16,即十六进制的 A:
convert image.png -channel RGB -fx '10/16' result.png
方法三
或者你的意思可能是,如果你从这个开始 - 这是从顶部透明到带有红色边框的黑色的渐变:
然后您希望除了完全透明的像素(靠近顶部)之外的所有像素都变成#AAA(此处显示为黄色):
convert start.png -channel A -threshold 1 -channel RGB -fill yellow -colorize 100% result.png