1分でわかるPNG8,PNG24,PNG32を判別する方法

1分でわかるPNG8,PNG24,PNG32を判別する方法

PNGを簡単に判別する方法

まず画像を操作したり表示したりするImageMagickというソフトウェアを下記のURLからダウンロードしてインストールする。

OSによってインストールするファイルが異なるので注意。
ftp://ftp.kddlabs.co.jp/graphics/ImageMagick/binaries/

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

のように入力して実行すると下記のような結果が表示される。

1分でわかるPNG8,PNG24,PNG32を判別する方法 Imagemagick結果

長い!

しかし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:の結果が見られるようにしておくと便利だ。

PNGファイルを判別するバッチファイル

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の透過と非透過の判別はできない。