我正在制作一个脚本来检查是否有任何图像被单色覆盖。我的想法是将图像大小调整为其大小的 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) 与前 3 个 (#fefefe) 不同。但是,前三个是错误的颜色,因为 #ffffff / 255, 255, 255 是白色的。
我发现了这两个问题,但我不知道如何将其应用于任何颜色: PHP: how to express "near white" as a color? 两个不寻常的PHP运算符一起使用来获取图像像素颜色,请解释
谁能告诉我是否有解决办法?