以前、「色弱シミュレーター機能の使えるアプリを探してみた」で色弱シミュレーターできるアプリを探したことがあったのですが、ふと複数の画像をまとめてできないかな?と思ったので試してみました。
環境
環境は以下のとおりです。
- Lubuntu 16.04
- ImageMagick 6.8.9-9 Q16
どうやって?
http://www.inf.ufrgs.br/~oliveira/pubs_files/CVD_Simulation/CVD_Simulation.html で値が公開されているので、その値を ImageMagick の -color-matrix オプションに指定すれば変換することができます。
複数ファイルへの適用は、ImageMagick の mogrify
コマンドを使います。
まずはひとつのファイル
使えば P型で 1.0 の場合なら以下のようなコマンドで変換できます。 0.152286 から 1.051998 までの 9 つの数字は、ホームページからコピペしたものとなります。
convert sample.png -quality 100 -colorspace RGB -color-matrix '
0.152286 1.052583 -0.204868
0.114503 0.786281 0.099216
-0.003882 -0.048116 1.051998
' sample-p.png
convert sample.png -quality 100 -colorspace RGB -color-matrix '
0.367322 0.860646 -0.227968
0.280085 0.672501 0.047413
-0.011820 0.042940 0.968881
' sample-d.png
convert sample.png -quality 100 -colorspace RGB -color-matrix '
1.255528 -0.076749 -0.178779
-0.078411 0.930809 0.147602
0.004733 0.691367 0.303900
' sample-t.png
ちなみにファイルがひとつの場合、以下のようにすれば結果を保存することなく表示だけできます。
convert sample.png -quality 100 -colorspace RGB -color-matrix '
0.152286 1.052583 -0.204868
0.114503 0.786281 0.099216
-0.003882 -0.048116 1.051998
' png:- | display png:-
つづけて複数のファイル
まとめて変換したい場合は、 mogrify
コマンドが使えます。以下はフォルダ内の全 PNG ファイルを変換して out-p、out-d、out-t フォルダに保存する例です。
mkdir out-p
mogrify -path out-p -quality 100 -colorspace RGB -color-matrix '
0.152286 1.052583 -0.204868
0.114503 0.786281 0.099216
-0.003882 -0.048116 1.051998
' *.png
mkdir out-d
mogrify -path out-d -quality 100 -colorspace RGB -color-matrix '
0.367322 0.860646 -0.227968
0.280085 0.672501 0.047413
-0.011820 0.042940 0.968881
' *.png
mkdir out-t
mogrify -path out-t -quality 100 -colorspace RGB -color-matrix '
1.255528 -0.076749 -0.178779
-0.078411 0.930809 0.147602
0.004733 0.691367 0.303900
' *.png
結果を並べて確認
montage
コマンド を使うと複数の画像ファイルを並べてまとめたものをひとつのファイルにすることができます。以下は out-p フォルダ内の全 PNG ファイルを 4x4 に並べたファイルを、 out-p.png のファイル名で作成します。16 枚 (4x4=16) を超えている場合は、 out-p-0.png, out-p-1.png のようなファイル名になります。
montage -tile 4x4 -quality 100 -geometry +1+1 out-p/*.png out-p.png
-resize パラメーターを使えば縮小してまとめて並べることもできます。
montage -resize 25% -tile 4x4 -quality 100 -geometry +1+1 out-p/*.png out-p.png
結果を保存せずに表示だけ
montage -resize 25% -tile 4x4 -quality 100 -geometry +1+1 out-p/*.png png:- | display png:-