確実に判別できるのかまでは分かりませんが、下に記述する方法でおおむね判定できるようです。
以下のブログ記事を参考にさせてもらいました。
感謝です。
画像がカラーか、白黒かを判別する - それマグで!
まず、
ImageMagick - Download
で、Windows向けの最新のバイナリをダウンロードしてきてインストールする。
インストールする際は、convertなどのレガシーなツールをインストールするか?という項目があるのでチェックする。
ffmpegをインストールするか?というオプションも必要そうなのでチェック(いらないかも)。
あとは、コマンドプロンプトを起動して以下のようにコマンドを実行。
> convert ファイルパス -colorspace HSB -separate -delete 0 -fx "u*v" -blur 2x2 -threshold 30% -format %[fx:mean] info:
0
モノクロだと0が出力され、そうでない場合は何も出力されません。
(参考にさせてもらったブログ記事とは挙動が異なるようですが、LinuxとWindowsでプラットフォームが違いますし、利用しているImageMagicのバージョンも違うので、そういうこともあるのでしょう。何故かまでは検証していません)
なお、jpeg画像でしか確認していないため、他の画像形式でうまくいくかは分かりませんが、上記のコマンドラインでファイル形式は指定していないので、おそらくうまくいくのではないかと思います。
以上。