カラーできれいに作ってある図をグレースケールに直さなければならないこと、しばしばあります。生産性のない作業なのでモチベーションが上がりません。単純なrainbow colorくらいなんとかならないかとやってみました。
convertでそれなりに変換できることがありますが、なかなかきれいにはなりません。
スクリプトはこれだけ。
#!/bin/csh
# Usage : ./rb2gray.sh (input file name)
set inn=$1
set inr=$1:r
set ine=$1:e
convert $inn -colorspace HSL -separate $inr\_hsl.png
convert $inr\_hsl-0.png -negate $inr\_hn.png
rm -f $inr\_hsl-*.png
convert $inn -modulate 200,0,100 $inr\_nc.png
mogrify -transparent “#ffffff” $inr\_nc.png
convert $inr\_hn.png $inr\_nc.png -composite $inr\_gray.$ine