2

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

我看了像素,颜色真的是#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
4

3 回答 3

3

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

于 2012-11-23T19:53:23.867 回答
0

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

如果您对大多数其他像素进行尝试,您将得到 16777215 (0xFFFFFF),即白色(红色 = 255,绿色 = 255,蓝色 = 255)。

于 2012-11-23T19:55:09.223 回答
0

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

于 2012-11-23T19:56:55.980 回答