如何判断图像是PNG24还是PNG8以及位数和通道数?

时间:2010-11-04 10:27:23

标签: php png gdlib png-24 png-8

我试图用getimagesize或Imagick区分PNG-8和PNG-24图像,但我不太清楚如何使用它。

getimagesize不返回我的PNG频道,而是显示mimetype。它适用于其他图像并显示正确的值,但对于PNG,它只显示任何内容。

编辑:我的环境中没有安装Imagick,但gdlib是......

有人可以帮我一点吗?

问候,
汤姆

EDIT2: 有可能这样做吗?

    //create png for tests
    $testPng = imagecreatefrompng( $file );
    //test how many colors are used
    $meta .= 'colors: ' . imagecolorstotal( $testPng );
    $meta .= ' truecolor: ' . imageistruecolor( $testPng );
    //destroy the test image
    imagedestroy( $testPng );

如果truecolor为false或未设置,则为png24?

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:1)

getimagesize()似乎可以解决问题:

  

bits是每种颜色的位数。

甚至不需要GD。