Recoloring massal PNG dari baris perintah

7

Mirip dengan perintah penyelamatan massal yang diajarkan situs ini kepada saya sini , apakah ada trik command-line untuk recoloring massal?

Untuk membuatnya spesifik, misalkan saya memiliki banyak gambar dengan nilai RGB dan alpha:

apple_original.png  
pear_original.png  
banana_original.png 

dan seterusnya. Saya ingin memiliki perintah baris perintah untuk memberi saya yang berikut:

apple_orange.png  
pear_orange.png  
banana_orange.png 

di mana dalam setiap kasus, nilai R, G, dan B untuk setiap piksel dikalikan masing-masing 1, 0,5, dan 0, dan alfa dibiarkan sendiri. Apakah itu mungkin?

William Jockusch
sumber

Jawaban:

3

Terima kasih Ignacio untuk petunjuk yang bagus. Berdasarkan itu, berikut adalah jawabannya:

Pertama-tama, untuk mengonversi satu file. Katakanlah kita ingin mengonversi test.png ke orangeTest.png, mengalikan R, G, dan B masing-masing dengan 1,0, 0,5, dan 0,0 Ini perintahnya:

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

Sekarang, untuk konversi massal:

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