Изменение насыщенности цвета #RGB: чего здесь не хватает?



Ниже приводится концепция для программы alterarion яркости/насыщенности с brightness() и saturation().



function brightness($colorstr, $steps) { 
...
return sprintf("%02x%02x%02x", $r, $g, $b);
}
function saturation(){
...
return sprintf("%02x%02x%02x", $r, $g, $b);
}


Существуют ли какие-либо существующие простые в использовании моды онлайн, чтобы дополнить этот Ане сделать возможным следующее:



$color2 = saturation($color,-10); /* less staurated*/
$color3 = saturation($color,+10); /* more staurated*/
649   3  

3 ответов:

Насыщенность и яркость не могут быть обработаны одинаково (можно утверждать, что вы не обрабатываете яркость правильно, используя этот код, но это, вероятно, достаточно близко). Смотрите этот вопрос RGB to HSV в PHP для того, как преобразовать цвет в значение HSV, то вы можете изменить насыщенность (значение S). Затем преобразуйте обратно, используя ответ на этот вопрос PHP HSV в RGB .

Я не могу ответить на это с помощью кода, но я это статья Википедии о оттенке и цветности очень хорошо описывает теорию.

Это легко сделать с помощью библиотеки phpColors:

После включения в ваш проект вы можете возиться с насыщенностью следующим образом:

use Mexitek\PHPColors\Color;

// Convert my HEX
$myBlue = Color::hexToHsl("#336699");

// Get crazy with the saturation
$myBlue["S"] = 0.2;

// Gimme my new color!!
echo Color::hslToHex($myBlue);

Comments

    Ничего не найдено.