我正在创建一个脚本来检查是否有任何图像被单一颜色覆盖。我的想法是将图像大小调整为其大小的1%,然后遍历每个像素,直到脚本找到一个像素,这是另一种颜色,然后是第一个像素。如果找到这样的像素,则图像不是完全1色。
现在我有一个1360x768 png图像,每个像素都是白色的。当我将此图像的大小调整为其大小的1%并保存时,每个像素仍然是完全白色的。我用Photoshop检查过这个。但是,当我试图从内存或保存的图像中读取所有像素时,imagecolorat表示并非所有像素都是完全相同的颜色。
这些是我从前面四个像素的imagecolorat / imagecolorsforindex得到的结果:
0x0: 16711422 Array ( [red] => 254 [green] => 254 [blue] => 254 [alpha] => 0 )
0x1: 16711422 Array ( [red] => 254 [green] => 254 [blue] => 254 [alpha] => 0 )
0x2: 16711422 Array ( [red] => 254 [green] => 254 [blue] => 254 [alpha] => 0 )
0x3: 16777215 Array ( [red] => 255 [green] => 255 [blue] => 255 [alpha] => 0 )
如您所见,第四个像素的颜色(#ffffff)与前三个(#fefefe)不同。但前三个是错误的颜色,因为#ffffff / 255,255,255会是白色。
我发现了这两个问题,但我不知道如何将它应用于任何颜色: PHP: how to express "near white" as a color? Two unusual PHP operators used together to get image pixel color, please explain
有人可以告诉我是否有解决方法吗?