Php 如何将字符串颜色转换为十六进制代码或RGB值?

Php 如何将字符串颜色转换为十六进制代码或RGB值?,php,colors,hex,Php,Colors,Hex,我不确定这是否可能,但我想创建一个函数,在其中传递一个字符串,例如“黄色”或“绿色”,它返回其十六进制代码或绿色或黄色适合的十六进制代码范围 这在PHP中可能吗?如果不可能,我愿意尝试任何其他可以做到这一点 谢谢大家据我所知,无法在PHP中转换或转换为十六进制或RGB值。您必须创建一个知道名称的地图(参见Wiki文章) 已经有人为您完成了这项工作: 摘录: $Colors = ARRAY( "black"=>array( "red"=>0x00, "green"

我不确定这是否可能,但我想创建一个函数,在其中传递一个字符串,例如“黄色”或“绿色”,它返回其十六进制代码或绿色或黄色适合的十六进制代码范围

这在PHP中可能吗?如果不可能,我愿意尝试任何其他可以做到这一点


谢谢大家

据我所知,无法在PHP中转换或转换为十六进制或RGB值。您必须创建一个知道名称的地图(参见Wiki文章)

已经有人为您完成了这项工作:

摘录:

$Colors  =  ARRAY( 
    "black"=>array( "red"=>0x00,  "green"=>0x00,  "blue"=>0x00), 
    "maroon"=>array( "red"=>0x80,  "green"=>0x00,  "blue"=>0x00), 
    // ...
    // more colors inbetween
    // ...
    "wheat"=>array( "red"=>0xF5,  "green"=>0xDE,  "blue"=>0xB3), 
    "whitesmoke"=>array( "red"=>0xF5,  "green"=>0xF5,  "blue"=>0xF5), 
    "yellowgreen"=>array( "red"=>0x9A,  "green"=>0xCD,  "blue"=>0x32)
); 
然后通过
$maroon=$Colors['maroon']获取RGB值

进一步参考:

//将html颜色名称转换为十六进制颜色值 //如果输入不是颜色名称,则返回原始值 // http://wpCodeSnippets.info 函数颜色\u名称\u到\u十六进制($color\u名称) { //标准147 HTML颜色名称 $colors=数组( “aliceblue”=>“F0F8FF”, “antiquewhite”=>“FAEBD7”, “aqua”=>“00FFFF”, ‘海蓝宝石’=>‘7FFFD4’, “azure”=>“F0FFFF”, “米色”=>“F5DC”, ‘bisque’=>‘FFE4C4’, “黑色”=>“000000”, “blanchedalmond”=>“FFEBCD”, “蓝色”=>“0000FF”, “蓝紫罗兰”=>“8A2BE2”, “棕色”=>“A52A2A”, “burlywood”=>“DEB887”, “cadetblue”=>“5F9EA0”, “黄绿色”=>“7FFF00”, “巧克力”=>“D2691E”, “coral”=>“FF7F50”, “矢车菊蓝”=>“6495ED”, “玉米丝”=>“FFF8DC”, “深红色”=>“DC143C”, “青色”=>“00FFFF”, “暗蓝色”=>“00008B”, “darkcyan”=>“008B8B”, “darkgoldenrod”=>“B8860B”, “darkgray”=>“A9A9”, “暗绿色”=>“006400”, “darkgrey”=>“A9A9”, “darkkhaki”=>“BDB76B”, 'darkmagenta'=>'8B008B', “darkolivegreen”=>“556B2F”, “darkorange”=>“FF8C00”, “darkorchid”=>“9932CC”, 'darkred'=>'8B0000', “darksalmon”=>“E9967A”, “暗绿色”=>“8FBC8F”, “深蓝色”=>“483D8B”, 'darkslategray'=>'2F4F4F', “深灰色”=>“2F4F4F”, “暗绿色”=>“00CED1”, “darkviolet”=>“9400D3”, “深粉色”=>“FF1493”, “深蓝”=>“00bff”, 'dimgray'=>'696969', “Dimgray”=>“696969”, “道奇蓝”=>“1E90FF”, “耐火砖”=>“B22222”, “floralwhite”=>“FFFAF0”, 'forestgreen'=>'228B22', ‘紫红色’=>‘FF00FF’, “gainsboro”=>“DCDC”, “幽灵白”=>“F8F8FF”, “黄金”=>“FFD700”, “黄花”=>“DAA520”, “灰色”=>“808080”, “绿色”=>“008000”, “绿黄色”=>“ADFF2F”, “灰色”=>“808080”, “蜜露”=>“F0FFF0”, 'hotpink'=>'FF69B4', “印度红”=>“CD5C”, “靛蓝”=>“4B0082”, “象牙”=>“FFFFF 0”, “卡其色”=>“F0E68C”, “薰衣草”=>“E6E6FA”, “薰衣草腮红”=>“FFF0F5”, “lawngreen”=>“7CFC00”, “lemonchiffon”=>“FFFACD”, “浅蓝色”=>“添加8E6”, “lightcoral”=>“F08080”, “lightcyan”=>“E0FFFF”, 'lightgoldenrodyellow'=>'FAFAD2', “浅灰色”=>“D3”, “浅绿色”=>“90EE90”, “浅灰色”=>“D3”, “淡粉色”=>“FFB6C1”, “轻鲑鱼”=>“FFA07A”, “lightseagreen”=>“20B2AA”, “lightskyblue”=>“87CEFA”, “lightslategray”=>“778899”, “浅灰色”=>“778899”, “lightsteelblue”=>“B0C4DE”, “浅黄色”=>“FFFFE0”, “石灰”=>“00FF00”, 'limegreen'=>'32CD32', “亚麻布”=>“FAF0E6”, “洋红”=>“FF00FF”, “栗色”=>“800000”, “mediumaquamarine”=>“66CDAA”, 'mediumblue'=>'0000CD', ‘中兰花’=>‘BA55D3’, “mediumpurple”=>“9370D0”, “mediumseagreen”=>“3CB371”, 'mediumslateblue'=>'7B68EE', “mediumspringgreen”=>“00FA9A”, “中等绿松石色”=>“48D1CC”, “mediumvioletred”=>“C71585”, “午夜蓝”=>“191970”, “薄荷奶油”=>“F5FFFA”, “mistyrose”=>“FFE4E1”, ‘moccasin’=>‘FFE4B5’, “纳瓦霍维特人”=>“死了”, “海军”=>“000080”, 'oldlace'=>'FDF5E6', “olive”=>“808000”, “olivedrab”=>“6B8E23”, “橙色”=>“FFA500”, “橙色”=>“FF4500”, ‘兰花’=>‘DA70D6’, “一枝黄花”=>“EEE8AA”, “淡绿色”=>“98FB98”, “淡绿色”=>Afeee, ‘Palevoletred’=>‘DB7093’, ‘木瓜鞭’=>‘FFEFD5’, “桃泡芙”=>“FFDAB9”, “秘鲁”=>“CD853F”, “粉红”=>“FFC0CB”, “梅花”=>“DDA0DD”, “粉蓝”=>“B0E0E6”, “紫色”=>“800080”, “红色”=>“FF0000”, “rosybrown”=>“BC8F8F”, “皇家蓝”=>“4169E1”, 'saddlebrown'=>'8B4513', “鲑鱼”=>“FA8072”, “sandybrown”=>“F4A460”, “seagreen”=>“2E8B57”, “seashell”=>“FFF5EE”, “sienna”=>“A0522D”, “银色”=>“C0”, “天蓝”=>“87CEEB”, “slateblue”=>“6A5ACD”, “slategray”=>“708090”, “slategrey”=>“708090”, “雪”=>“FFFAFA”, “春绿”=>“00FF7F”, “钢蓝”=>“4682B4”, ‘tan’=>‘D2B48C’, 'teal'=>'008080', '蓟'=>'D8BFD8', ‘番茄’=>‘FF6347’, “绿松石”=>“40E0D0”, “紫罗兰”=>“EE82EE”, “小麦”=>“F5DEB3”, “白色”=>“FFFFFF”, “白烟”=>“F5”, “黄色”=>“FFFF00”, “黄绿色”=>“9ACD32”); $color\u name=strtolower($color\u name); 如果(isset($colors[$color\U name])) { 返回(“#”。$colors[$color_name]); } 其他的 { 返回($color\u name); } } 这个怎么样

function color2hex ($nm)
{
    preg_match_all ("/\d{1,3}/", (new ImagickPixel ($nm))->getColorAsString (), $matches);
    [$r, $g, $b] = $matches[0];
    return sprintf ("#%06X", $r * 65536 + $g * 256 + $b);
}

哇,太棒了!只需要将它包装在另一个rgb到十六进制转换函数中!。。。或者直接使用它!如果有人需要这个功能,第一个贡献者(Halit YEL)写了一篇非常有趣的文章
function color2hex ($nm)
{
    preg_match_all ("/\d{1,3}/", (new ImagickPixel ($nm))->getColorAsString (), $matches);
    [$r, $g, $b] = $matches[0];
    return sprintf ("#%06X", $r * 65536 + $g * 256 + $b);
}