Как определить, является ли изображение PNG24 или PNG8 и количество бит и каналов? - PullRequest
2 голосов
/ 04 ноября 2010

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

getimagesize не возвращает каналы для моих PNG и отображает вместо этого mimetype. Он хорошо работает для других изображений и показывает правильные значения, но для PNG просто ничего не показывает.

edit: 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 ]

1 голос
/ 05 ноября 2010

getimagesize(), кажется, делает свое дело:

bits - это количество бит для каждого цвета.даже не нужен Б-г.

1 голос
/ 04 ноября 2010
...