PHP выработать насыщенность цвета - PullRequest
0 голосов
/ 05 марта 2010

допустим, у меня есть следующие значения RGB:

Р: 129 G: 98 B: 87

Фотошоп говорит, что насыщенность этого цвета составляет 33%

Как бы я вычислил этот процент, используя PHP и значения RGB?

Ответы [ 2 ]

3 голосов
/ 05 марта 2010

См. RGB в HSV в PHP

Взятие только битов насыщенности из этого кода и преобразование в процент:

function saturation($R, $G, $B) {  // 0-255
     $Min = min($R, $G, $B);
     $Max = max($R, $G, $B);
     return $Max == 0 ? 0 : (($Max - $Min) / $Max) * 100;
}

В качестве альтернативы вы можете использовать исходный код по ссылке выше - значения HSV, которые он возвращает, находятся между 0,0 и 1,0, поэтому вам просто нужно умножить значение насыщенности на 100, чтобы получить свой процент.

0 голосов
/ 05 марта 2010

PEAR (PHP Расширения и хранилище приложений) имеет приятный пакет под названием Image_Color2 , который позволяет вам быстро конвертировать различные цветовые модели:

include "Image/Color2.php";

$color = new Image_Color2(array(129,98,87));
$hsv = $color->convertTo('hsv');
$hsvArray = $hsv->getArray();

echo "Hue is " . $hsvArray[0] . "\n";
echo "Saturation is: " . $hsvArray[1] . "\n";
echo "Brightness is: " . $hsvArray[2];    
...