回答
没有这样的功能,
你需要编写自己的功能,其获取的R,G和B值induvidualy, 并循环到每一个值,并找出笏最接近的是(总R和G和B的OFSET最小)
,你可以在这里找到所有HTML colornames:http://www.w3.org/TR/SVG/types.html#ColorKeywords
ex:
用户给出[250,1,2](olwost红色)。你有一个阵列:
$input = [255,1,2]
$colors = array("red" => [255,0,0],"green"=>[0,255,0]) // used JS array to be quiker
foreach($ .. as .. $color){ // or a sort function?
// get diff, key 0 is red key 2 is blue
$diff = abs($input[0] - $color[0]) + ... + abs($input[2] - $color[2]);
}
红将具有一个diff:5 + 1 + 2 绿色将有:250 + 254 + 2 蓝色是:250 + 1 + 253
红色有最低的总和,所以它必须变红。 蓝色是未来,然后来绿色
你能举个例子吗? –
见上面编辑^ – beardhatcode
对不起,我stil没有得到它: 现在我有这个: $ arr_input = array(255,1,2]); $ arr_colors =阵列( \t '红' \t => \t 255,0,0, \t '绿色' \t => \t 0,255,0 ); function returnColorNameByRgbcolor($ rgb_color); \t的foreach($ arr_colors为$颜色){ \t \t //获取DIFF,关键是0红键2是蓝色 \t \t回声$ arr_input [0]; \t \t \t \t // echo $ arr_input [0] - $ color [0]。 ' - '。 $ arr_input [1] - $ color [1]。 ' - '。 $ arr_input [2] - $ color [2]; \t \t $ diff = abs($ arr_input [0] - $ color [0])+ abs($ arr_input [1] - $ color [1])+ abs($ arr_input [2] - $ color [2]) ; \t \t echo $ diff。'
'; \t \t // echo $ diff。 '
'; \t \t \t} \t \t回$ COLOR_NAME; } –
请参阅下面我的代码。我使用它来复制徽标颜色以在运行时自动更改网站主题。希望它有效!
只需传递图像URL作为函数中的参数即可。
function CopyLogoColor($logo_path){
$i = imagecreatefromjpeg($logo_path);
$rTotal = 0;
$gTotal =0;
$bTotal = 0;
$total = 0;
for ($x=0 ; $x<imagesx($i) ; $x++){
for ($y=0 ; $y<imagesy($i) ; $y++) {
$rgb = imagecolorat($i,$x,$y);
$r = ($rgb >> 16) & 0xFF;
$g = ($rgb >> 8)& 0xFF;
$b = $rgb & 0xFF;
$rTotal += $r;
$gTotal += $g;
$bTotal += $b;
$total++;
}
}
$rAverage = round($rTotal/$total);
$gAverage = round($gTotal/$total);
$bAverage = round($bTotal/$total);
$r = intval($rAverage);
$g = intval($gAverage);
$b = intval($bAverage);
$r = dechex($r<0?0:($r>255?255:$r));
$g = dechex($g<0?0:($g>255?255:$g));
$b = dechex($b<0?0:($b>255?255:$b));
$color = (strlen($r) < 2?'0':'').$r;
$color .= (strlen($g) < 2?'0':'').$g;
$color .= (strlen($b) < 2?'0':'').$b;
return '#'.$color;
}
- 1. 通过十六进制或RGB获取颜色名称
- 2. 将十六进制颜色代码转换为颜色名称
- 3. 从十六进制颜色代码中找到颜色名称
- 4. 颜色名称为RGB /十六进制/ HSL/HSV等
- 5. 如何十六进制颜色转换为RGB颜色(24位)
- 6. 将十六进制颜色值转换为近似颜色名称的函数?
- 7. javascript十六进制颜色转换成rgb函数
- 8. 哪一个更快:十六进制颜色代码或颜色名称?
- 9. rbg或十六进制选择颜色?
- 10. xsl检查颜色是否是名称或十六进制
- 11. 将RGB /十六进制颜色代码映射到一般颜色类别
- 12. 十六进制颜色代码到RGB数字
- 13. 从java中的十六进制代码获取颜色名称
- 14. 通过十六进制值获取颜色的名称?
- 15. 转换颜色的十六进制值
- 16. 用十六进制颜色寻找最近的PMS颜色?
- 17. 如何将十六进制值转换为颜色名称
- 18. 在C#中将颜色名称转换为十六进制
- 19. 转换UINT颜色ARGB十六进制颜色KML
- 20. 将十六进制颜色代码作为gridview背景颜色
- 21. C:conio颜色为十六进制代码/ RGB
- 22. 如何用Javascript/jQuery计算RGB十六进制颜色变化
- 23. 将RGB转换为十六进制颜色
- 24. 随机十六进制颜色发生器+ RGB滑块jquery
- 25. 将RGB颜色值转换为十六进制
- 26. 如何从十六进制转换颜色为RGB
- 27. 整个Adobe RGB颜色空间列表为十六进制?
- 28. 过滤器十六进制颜色
- 29. 解析十六进制'0x0976b8'颜色android
- 30. 颜色十六进制到imagefilledrectangle
当你说“最接近” - 你的意思是?考虑到R,G和B都在0x00和0xFF之间的标准RGB,您将获得超过1650万种颜色。他们中的大多数甚至没有分配给他们的专有名称。 –
这可能不是最好的方法,因为你会有几个不同的颜色具有相同的名称。为什么不只显示颜色而不是列出其名称? – dqhendricks