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