手元に色のおかしい bmp 画像があった。どうも R,G,B が入れ替わっているらしい。
ImageMagick の convert
コマンドで何とかできないかとググってみたら、↓このページを見つけた。
cf. ImageMagickを使ったグレイスケール、反転、RGB入れ替えについて – Qiita
このページによると、いったん R,G,B それぞれの画像に分解してから、順番を入れ替えて合成すればいいようだ。詳しくは書かないけど、中間ファイルを作らなきゃいけないし、convert
コマンドのオプション指定も難しい(詳しくは理解してない)。それでも試してみると、どうやら R と B を入れ替えると正常らしい色に変換できた。
とはいえ、画像ファイルは千個以上もあっていちいち手でやってられないので、スクリプト(バッチファイル)を書いた。
一つは、色のおかしい bmp ファイルを正常な png ファイルに変換するスクリプト。
@echo off convert %1 -fX R img_R.png convert %1 -fX G img_G.png convert %1 -fX B img_B.png convert ( img_B.png img_G.png img_R.png ) -set clorspace RGB -combine -set colorspace sRGB img_BGR.png convert -flip img_BGR.png %2 del img_*.png
もう一つは、上記のスクリプトをカレントディレクトリの全 bmp ファイルに適用するスクリプト。
for %%I in (*.bmp) do convertBGR %%I %%~nI.png
これで全部正常になった。