Как определить, является ли изображение PNG24 или PNG8 и количество бит и каналов?

Я пытаюсь различить изображения PNG-8 и PNG-24 с getimagesize или Imagick, но я не совсем знаю, как это сделать.

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 ответа

getimagesize() кажется, делает трюк:

bits количество бит для каждого цвета.

даже не нужно GD.

Другие вопросы по тегам