Ricolorazione di massa dei PNG dalla riga di comando


7

Simile al comando di riscalaggio di massa che questo sito mi ha insegnato Qui , c'è un trucco da riga di comando per la ricolorazione di massa?

Per renderlo specifico, supponiamo di avere un sacco di immagini con valori RGB e alfa:

apple_original.png  
pear_original.png  
banana_original.png 

e così via. Voglio avere un comando da riga di comando per darmi quanto segue:

apple_orange.png  
pear_orange.png  
banana_orange.png 

dove in ogni caso, i valori R, G e B per ciascun pixel sono stati moltiplicati per 1, 0,5 e 0, rispettivamente, e l'alfa è stato lasciato solo. È possibile?

Risposte:



3

Grazie Ignacio per il grande suggerimento. Basandoci su, ecco le risposte:

Prima di tutto, per convertire un singolo file. Diciamo che vogliamo convertire test.png in orangeTest.png, moltiplicando R, G e B di 1.0, 0.5 e 0.0, rispettivamente. Ecco il comando:

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

Ora, per la conversione di massa:

for i in *.png; 
   do convert "$i" xc:'rgb(255,127,0)' -fx 'u*v.p{0,0}' "${i%.*}_orange.png"; 
done
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.