如何使用php找到PNG图像的通道数?
根据getimagesize(http://php.net/manual/en/function.getimagesize.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);
?>
channel_test.php的输出:
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
)
正如您所看到的,BMP和PNG图像未返回通道数。 这是一个错误还是预期的行为? 如果预计我认为php文档有点误导。
还有另一种方法可以获得频道数量吗?
我正在运行php 5.4.9(linux),同时安装了gd和imagick。
答案 0 :(得分:0)
看起来像是一个遗漏。代码就不存在了。