以下是使用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*/
答案 0 :(得分:2)
饱和度和亮度不能相同(有人可能会说你使用这个代码没有正确处理亮度,但它可能足够接近)。有关如何将颜色转换为HSV值,请参阅此问题RGB to HSV in PHP,然后您可以修改饱和度(S值)。然后使用此问题PHP HSV to RGB的答案转换回来。
答案 1 :(得分:1)
我不能用代码回答这个问题,但是这个关于色调和色度的wikipedia article很好地描述了这个理论。
答案 2 :(得分:1)
您可以使用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);