Как определить, является ли изображение 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.