PHP:如何将 "near white"表示为颜色?

标签 php gd rgb

我有一个功能可以修剪图像周围的白色区域,效果类似于

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/

相关文章:

php - 如何在视觉 Composer 中使用短代码

php - Gd 已安装,但 "Call to undefined function imagecreatefromjpeg()"

php - 从网页(PHP 或 JS)创建分层 PSD 或 TIFF

iphone - Objective C 查找最接近的颜色 (rgb) 匹配

php - 带有正确 header 的预检响应不成功

PHP动态变量声明

javascript - Jquery hide() 、 show() 函数不起作用

php - 在 ubuntu 上安装 php70-gd

java - 替换图像中的嘈杂颜色以从验证码中获取带有 OCR 的文本

javascript - 函数中的这一行有什么作用?