我有一个功能可以修剪图像周围的白色区域,效果类似于
if(imagecolorat($img, $x, $top) != 0xFFFFFF) {
//sets where the top part of the image is trimmed
}
问题是有些图像偶尔会出现杂散像素,该像素非常接近白色以至于难以察觉,但会搞砸裁剪,因为它不完全是 0xFFFFFF,而是 0xFFFEFF 之类的。我怎样才能重写上面的语句,以便它对那些接近白色的图像进行评估,比如低至 0xFDFDFD,显然没有测试任何可能的值。
最佳答案
$color = imagecolorat($img, $x, $top);
$color = array(
'red' => ($color >> 16) & 0xFF,
'green' => ($color >> 8) & 0xFF,
'blue' => ($color >> 0) & 0xFF,
);
if ($color['red'] >= 0xFD
&& $color['green'] >= 0xFD
&& $color['blue'] >= 0xFD) {
//sets where the top part of the image is trimmed
}
有关所用运算符的说明,请阅读:
关于PHP:如何将 "near white"表示为颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13158928/