2013年9月16日月曜日

PNGが使っている色数を取得する方法

pngは色数を減らして、インデックスカラーにすると容量が小さくなるという。確かにPNG8で保存すると軽くはなるのだが、じゃぁどんだけ色が減って居るかってことは、ぱっと見分からない。

ぱっと見分からなければいいじゃないかというものの、あまりに主観が入りすぎる。

ということで、「色数を減らす前のpngがどんだけ色数を使っているのか」を取得するPHPスクリプト。コマンドラインで、第一引数にファイル名を指定する。

これ。



<?
$im = imagecreatefrompng($argv[1]);

$width = imagesx($im);
$height = imagesy($im);

echo "width : ".$width ."\n";
echo "height: ".$height ."\n";

$color=array();
for($x = 0;$x < $width;$x++){
    for($y=0;$y< $height;$y++){
        $color[imagecolorat($im,$x,$y)]++;
    }
}
//var_dump($color);
echo "color count: ".count($color) ."\n";

0 件のコメント:

コメントを投稿