有时,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
答案 0 :(得分:3)
如果正确加载图像并且你得到0,则表示颜色为纯黑色(RGB => 0x000000 => 0)
答案 1 :(得分:0)
因为那是该像素的颜色:黑色(红色= 0,绿色= 0,蓝色= 0)
如果你为大多数其他像素尝试它,你会得到16777215(0xFFFFFF),这是白色(红色= 255,绿色= 255,蓝色= 255)。
答案 2 :(得分:0)
或者颜色是黑色,或者我认为图像没有正确加载。至少不是你把.png作为例子。也许@正在隐藏未加载图像的错误。它的url重定向到另一个,在这种情况下你应该使用像CURL这样的东西来找到真实的图像。