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