从命令行批量重新着色 PNG

Wil*_*sch 7 png colors imagemagick images macos

类似于本网站在这里教我的批量重新缩放命令,是否有用于批量重新着色的命令行技巧?

具体来说,假设我有一堆带有 RGB 和 alpha 值的图像:

apple_original.png  
pear_original.png  
banana_original.png 
Run Code Online (Sandbox Code Playgroud)

等等。我想要一个命令行命令来给我以下内容:

apple_orange.png  
pear_orange.png  
banana_orange.png 
Run Code Online (Sandbox Code Playgroud)

其中在每种情况下,每个像素的 R、G 和 B 值已分别乘以 1、0.5 和 0,而 alpha 则单独保留。那可能吗?

Wil*_*sch 3

感谢伊格纳西奥的精彩提示。基于此,答案如下:

首先,转换单个文件。假设我们要将 test.png 转换为 OrangeTest.png,将 R、G 和 B 分别乘以 1.0、0.5 和 0.0。这是命令:

convert test.png xc:'rgb(255,127,0)' -fx 'u*v.p{0,0}' orangeTest.png
Run Code Online (Sandbox Code Playgroud)

现在,对于批量转换:

for i in *.png; 
   do convert "$i" xc:'rgb(255,127,0)' -fx 'u*v.p{0,0}' "${i%.*}_orange.png"; 
done
Run Code Online (Sandbox Code Playgroud)