
PNGを簡単に判別する方法
まず画像を操作したり表示したりするImageMagickというソフトウェアを下記のURLからダウンロードしてインストールする。
OSによってインストールするファイルが異なるので注意。
Windows 64ビットの場合
ImageMagick-6.8.9-0-Q16-x64-dll.exe
Windows 32ビットの場合
ImageMagick-6.8.9-0-Q16-x86-dll.exe
Mac OS Xの場合はこちらからインストール
http://cactuslab.com/imagemagick/
インストールすると下記のコマンドで画像の詳細データを表示することができるようになる。
identify -verbose 【ファイル名】
例えばcdコマンドで調べたいPNGファイルがある場所に移動したあと
identify -verbose png8.png
のように入力して実行すると下記のような結果が表示される。

長い!
しかしPNG8,PNG24,PNG32の判別のために調べるところは
png:IHDR.color_type:とalpha:の2点だけなので簡単だ。
例えばPNG8(透過なし)の場合は
png:IHDR.color_type: 3 (Indexed)
alpha:は表示されない。
PNG8(インデックス透明カラー)の場合は
png:IHDR.color_type: 3 (Indexed)
alpha: 1-bit
PNG8(アルファチャネル)の場合は
png:IHDR.color_type: 3 (Indexed)
alpha: 8-bit
PNG24の場合は
png:IHDR.color_type: 2 (Truecolor)
alpha:は表示されない。
PNG32(透過なし)の場合は
png:IHDR.color_type: 6 (RGBA)
alpha: 1-bit
PNG32(透過あり)の場合は
png:IHDR.color_type: 6 (RGBA)
alpha: 8-bit
以上のように表示されるのでここだけ見るとよい。
Windowsの場合はバッチファイルを使用してPNGファイルをバッチファイルにドラッグ&ドロップしただけでpng:IHDR.color_type:とalpha:の結果が見られるようにしておくと便利だ。
Macならpngcheckが便利
Macだけならpngcheckを使用すると簡単にPNGの判定ができる。
使い方はまず下記のコマンドでインストール
brew install pngcheck
そして「pngcheck ファイルパス」を実行するだけだ。
$ pngcheck *.png OK: png24.png (100x50, 24-bit RGB, non-interlaced, 91.8%). OK: png32.png (100x50, 32-bit RGB+alpha, non-interlaced, 76.6%). OK: png32_alpha_none.png (100x50, 32-bit RGB+alpha, non-interlaced, 92.8%). OK: png8.png (100x50, 8-bit palette, non-interlaced, 86.3%). OK: png8_alpha.png (100x50, 8-bit palette+trns, non-interlaced, 85.7%).
ただし、見ての通りこのやり方の場合、png32の透過と非透過の判別はできない。