使用PHP获取Color Shade

时间:2011-03-20 10:31:01

标签: php colors hex

我希望使用PHP从给定的十六进制值获得更明亮的十六进制色调输出。例如,我将颜色#cc6699作为输入,我希望#ee88aa作为输出颜色。我将如何在PHP中执行此操作?

4 个答案:

答案 0 :(得分:7)

您需要将颜色转换为RGB,进行添加并转换回来:

// Convert string to 3 decimal values (0-255)
$rgb = array_map('hexdec', str_split("cc6699", 2));

// Modify color
$rgb[0] += 34;
$rgb[1] += 34;
$rgb[2] += 17;

// Convert back
$result = implode('', array_map('dechex', $rgb));

echo $result;

See it in action here

答案 1 :(得分:1)

1。将颜色分为三个元素:cc,66,99 2.使用http://php.net/manual/de/function.hexdec.php将其转换为十进制 3.增加三个十进制值 4.再次将小数转换为十六进制 5.把三个元素放在一起

答案 2 :(得分:0)

与您的问题没有直接关系,但本文对于颜色转换非常有用:http://beesbuzz.biz/code/hsv_color_transforms.php

答案 3 :(得分:0)

最佳解决方案是将RGB转换为HSL or HSV(只需搜索谷歌搜索php converter hsl/hsv)。

然后你可以使用颜色空间的'亮度'或'值'值。

然后将其转换回RGB色彩空间。