Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有没有一种方法可以使用php对十六进制颜色进行分组_Php_Colors_Hex_Color Picker - Fatal编程技术网

有没有一种方法可以使用php对十六进制颜色进行分组

有没有一种方法可以使用php对十六进制颜色进行分组,php,colors,hex,color-picker,Php,Colors,Hex,Color Picker,我正在使用一个PHP颜色提取类,我在GitHub中为我正在处理的项目找到了这个类 颜色提取器类 https://github.com/humanmade/Colors-Of-Image 我的问题是,是否有一种方法可以将颜色分组到主颜色 示例:如果你选择红色,上面的课程将给出 #ff0000 #e50000 #cc0000 所以取决于图像。我要做的是在保存到数据库之前将所有这些颜色都设置为红色 有没有检查颜色范围的公式?我搜索了几天,但找不到任何信息。感谢您的时间。这实际上取决于您希望拥

我正在使用一个PHP颜色提取类,我在GitHub中为我正在处理的项目找到了这个类

颜色提取器类

https://github.com/humanmade/Colors-Of-Image
我的问题是,是否有一种方法可以将颜色分组到主颜色

示例:如果你选择红色,上面的课程将给出

#ff0000 
#e50000 
#cc0000 
所以取决于图像。我要做的是在保存到数据库之前将所有这些颜色都设置为红色


有没有检查颜色范围的公式?我搜索了几天,但找不到任何信息。感谢您的时间。

这实际上取决于您希望拥有多少组,但由于红-绿-蓝是由三对组成的,因此您可以将整个字符串(无散列)分成几对,然后使用
hexdec
函数将每一对计算为十进制,并查看它们是否在您选择的特定范围内

i、 e:如果hexdec结果远大于第二对和第三对的总和,那么您很可能看到的是红色的一些变体

示例代码:

$colors = [
    '#ff0000',
'#e50000',
'#cc0000',
];

foreach ($colors as $hex){
    list($redHex,$greenHex,$blueHex) = str_split(trim($hex,'#'),2);
    $redVal = hexdec($redHex);
    $greenVal = hexdec($greenHex);
    $blueVal = hexdec($blueHex);
    if($redVal > $greenVal+$blueVal){
        echo $hex.' is most likely red';
    }
}

我不明白你的问题。您是否只想将完整图像的红色通道保存为数据库中的图像?@KIKO Software我想概括颜色。就像任何红色十六进制转换成红色,任何橙色十六进制转换成橙色。你说话就像一个人,而不是一个程序员。你是说,如果图像中的某个像素与其中的任何红色相同,你想使该像素变成全红色
#FF0000
?似乎hexdec只允许RGB?请参阅我的更新答案以及我的意思示例代码