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