php imagecolorat返回0.为什么?

时间:2012-11-23 19:09:04

标签: php image-processing gd

有时,imagecolorat()会返回0,并且我正在分析的PNG中有一些像素。这是为什么?

我看了像素,颜色真的是#111111。所以它应该返回1118481.对吗?

我尝试使用imagealphablending($ img,true),但我仍然得到0。

谢谢!

$img = @imagecreatefrompng($png);

if(!$img){
throw new Exception("Error loading PNG.");
}
var_dump(imagecolorat($img, 37, 625));

结果:

int 0

3 个答案:

答案 0 :(得分:3)

如果正确加载图像并且你得到0,则表示颜色为纯黑色(RGB => 0x000000 => 0)

答案 1 :(得分:0)

因为那是该像素的颜色:黑色(红色= 0,绿色= 0,蓝色= 0)

如果你为大多数其他像素尝试它,你会得到16777215(0xFFFFFF),这是白色(红色= 255,绿色= 255,蓝色= 255)。

答案 2 :(得分:0)

或者颜色是黑色,或者我认为图像没有正确加载。至少不是你把.png作为例子。也许@正在隐藏未加载图像的错误。它的url重定向到另一个,在这种情况下你应该使用像CURL这样的东西来找到真实的图像。