2013-09-23 1 views
1

PHP로 PNG 이미지의 채널 수는 어떻게 찾습니까?PHP로 PNG 이미지 채널 수 찾기

getimagesize (http://php.net/manual/en/function.getimagesize.php)의 문서에 따르면이 함수는 항상 채널 수를 반환합니다.

내가 알 수있는 한 이것이 사실이 아닙니다. 여기 은 예입니다

channel_test.php : channel_test.php의

<?php 
$path1 = "test.jpg"; 
$path2 = "homer.gif"; 
$path3 = "bmp_24.bmp"; 
$path4 = "tux.png"; 

$info1 = getimagesize($path1); 
$info2 = getimagesize($path2); 
$info3 = getimagesize($path3); 
$info4 = getimagesize($path4); 

echo "\nJPG:"; 
print_r($info1); 

echo "\nGIF:"; 
print_r($info2); 

echo "\nBMP:"; 
print_r($info3); 

echo "\nPNG:"; 
print_r($info4); 
?> 

출력 : 당신이 채널의 수는 BMP 및 PNG에 대한 반환되지 않습니다 볼 수 있듯이

JPG:Array 
(
    [0] => 463 
    [1] => 399 
    [2] => 2 
    [3] => width="463" height="399" 
    [bits] => 8 
    [channels] => 3 
    [mime] => image/jpeg 
) 

GIF:Array 
(
    [0] => 320 
    [1] => 320 
    [2] => 1 
    [3] => width="320" height="320" 
    [bits] => 8 
    [channels] => 3 
    [mime] => image/gif 
) 

BMP:Array 
(
    [0] => 200 
    [1] => 200 
    [2] => 6 
    [3] => width="200" height="200" 
    [bits] => 24 
    [mime] => image/x-ms-bmp 
) 

PNG:Array 
(
    [0] => 400 
    [1] => 479 
    [2] => 3 
    [3] => width="400" height="479" 
    [bits] => 8 
    [mime] => image/png 
) 

영상. 이것은 버그입니까, 예상되는 동작입니까? PHP 문서가 약간 잘못된 것이라고 생각됩니다.

채널 수를 구할 수있는 다른 방법이 있습니까?

저는 PHP 5.4.9 (linux)를 실행 중입니다. gd와 imagick이 모두 설치되어 있습니다.

+1

코드 : @leonbloy https://github.com/ktomk/Miscellaneous/blob/master/get_png_imageinfo/get_png_imageinfo.php – leonbloy

+0

감사합니다, 나는 :) – mario

답변

0

누락 된 것처럼 보입니다. 코드가 없습니다.

+0

을 확인해 것 내가 버그로보고 : https : //로 bugs.php.net/bug.php?id=65749 적어도 설명서가 "7 개의 요소가있는 배열을 반환합니다."에서 변경되었습니다. ""최대 7 개의 요소가있는 배열을 반환합니다. 모든 이미지 유형에 채널 및 비트 요소가 포함되지는 않습니다. " – mario