Recoloração em massa de PNGs a partir da linha de comando

7

Semelhante ao comando de reescalonamento em massa que este site me ensinou aqui , há um comando truque de linha para recolorir em massa?

Para torná-lo específico, suponha que eu tenha várias imagens com valores RGB e alfa:

apple_original.png  
pear_original.png  
banana_original.png 

e assim por diante. Eu quero ter um comando de linha de comando para me dar o seguinte:

apple_orange.png  
pear_orange.png  
banana_orange.png 

onde, em cada caso, os valores R, G e B de cada pixel foram multiplicados por 1, 0,5 e 0, respectivamente, e o alfa foi deixado sozinho. Isso é possível?

    
por William Jockusch 14.05.2011 / 02:43

2 respostas

3

Obrigado Ignacio pela grande dica. Com base nisso, aqui estão as respostas:

Primeiro, para converter um único arquivo. Digamos que queremos converter test.png para orangeTest.png, multiplicando R, G e B por 1,0, 0,5 e 0,0, respectivamente. Aqui está o comando:

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

Agora, para a conversão em massa:

for i in *.png; 
   do convert "$i" xc:'rgb(255,127,0)' -fx 'u*v.p{0,0}' "${i%.*}_orange.png"; 
done
    
por 17.05.2011 / 03:34
3
por 14.05.2011 / 12:41