通过命令行对 PNG 进行大规模重新着色

通过命令行对 PNG 进行大规模重新着色

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

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

apple_original.png  
pear_original.png  
banana_original.png 

等等。我希望有一个命令行命令可以给我以下信息:

apple_orange.png  
pear_orange.png  
banana_orange.png 

在每种情况下,每个像素的 R、G 和 B 值分别乘以 1、0.5 和 0,而 alpha 保持不变。这可能吗?

答案1

答案2

感谢 Ignacio 的精彩提示。根据提示,以下是答案:

首先,转换单个文件。假设我们要将 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

现在,进行批量转换:

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

相关内容