", $u, $u, $d) ?> */ function imagelightnessat($img, $x, $y) { if (!$img instanceof \GdImage && !is_resource($img)) { trigger_error('imagelightnessat(): supplied argument is not a valid ' . 'Image resource', E_USER_WARNING); return 0.0; } $c = @imagecolorat($img, $x, $y); if ($c === false) { return false; } if (imageistruecolor($img)) { $red = ($c >> 16) & 0xFF; $green = ($c >> 8) & 0xFF; $blue = $c & 0xFF; } else { $i = imagecolorsforindex($img, $c); $red = $i['red']; $green = $i['green']; $blue = $i['blue']; } $m = min($red, $green, $blue); $n = max($red, $green, $blue); /* Because RGB isn't normalized in GD, we divide by 510 here. * Lightness = (Max(RGB) + Min(RGB)) / 2 * But that's assuming red, green, and blue are 0 through 1 inclusive. * Red, green, and blue are actually 0-255 (255 + 255 = 510). */ $lightness = (float) (($m + $n) / 510.0); return $lightness; }