我不认为任何人都知道函数(最好是PHP)可以采用十六进制颜色代码并为该十六进制值提供近似颜色名称.我不需要100种颜色的解决方案.即使它只是白色,黑色,红色,绿色,棕色橙色和黄色的颜色,我的形状也很好.
如果您不知道现有资源,是否有人知道解决此问题的好方法?
在此先感谢您的帮助.
Art*_*cto 24
你在维基百科中有一个颜色列表.
一个天真的实现只会计算你想要检索的颜色与每个颜色之间的距离,并输出更接近的颜色.
如果在R3中将颜色视为矢量,则可以将距离计算为L1范数:
function distancel1(array $color1, array $color2) {
return abs($color1[0] - $color2[0]) +
abs($color1[1] - $color2[1]) +
abs($color1[2] - $color2[2]);
}
Run Code Online (Sandbox Code Playgroud)
或L2规范:
function distancel2(array $color1, array $color2) {
return sqrt(pow($color1[0] - $color2[0], 2) +
pow($color1[1] - $color2[1], 2) +
pow($color1[2] - $color2[2], 2));
}
Run Code Online (Sandbox Code Playgroud)
有关转换十六进制表示法的信息,请参阅此处.
示例脚本:
<?php
$colors = array(
"black" => array(0, 0, 0),
"green" => array(0, 128, 0),
"silver" => array(192, 192, 192),
"lime" => array(0, 255, 0),
"gray" => array(128, 0, 128),
"olive" => array(128, 128, 0),
"white" => array(255, 255, 255),
"yellow" => array(255, 255, 0),
"maroon" => array(128, 0, 0),
"navy" => array(0, 0, 128),
"red" => array(255, 0, 0),
"blue" => array(0, 0, 255),
"purple" => array(128, 0, 128),
"teal" => array(0, 128, 128),
"fuchsia" => array(255, 0, 255),
"aqua" => array(0, 255, 255),
);
$value = "#819001";
function html2rgb($color)
{
if ($color[0] == '#')
$color = substr($color, 1);
if (strlen($color) == 6)
list($r, $g, $b) = array($color[0].$color[1],
$color[2].$color[3],
$color[4].$color[5]);
elseif (strlen($color) == 3)
list($r, $g, $b) = array($color[0].$color[0],
$color[1].$color[1], $color[2].$color[2]);
else
return false;
$r = hexdec($r); $g = hexdec($g); $b = hexdec($b);
return array($r, $g, $b);
}
function distancel2(array $color1, array $color2) {
return sqrt(pow($color1[0] - $color2[0], 2) +
pow($color1[1] - $color2[1], 2) +
pow($color1[2] - $color2[2], 2));
}
$distances = array();
$val = html2rgb($value);
foreach ($colors as $name => $c) {
$distances[$name] = distancel2($c, $val);
}
$mincolor = "";
$minval = pow(2, 30); /*big value*/
foreach ($distances as $k => $v) {
if ($v < $minval) {
$minval = $v;
$mincolor = $k;
}
}
echo "Closest color: $mincolor\n";
Run Code Online (Sandbox Code Playgroud)
小智 5
这是一个更大的颜色数组,第1部分:
$colors = array(
"cloudy blue" => array(172, 194, 217),
"dark pastel green" => array(86, 174, 87),
"dust" => array(178, 153, 110),
"electric lime" => array(168, 255, 4),
"fresh green" => array(105, 216, 79),
"light eggplant" => array(137, 69, 133),
"nasty green" => array(112, 178, 63),
"really light blue" => array(212, 255, 255),
"tea" => array(101, 171, 124),
"warm purple" => array(149, 46, 143),
"yellowish tan" => array(252, 252, 129),
"cement" => array(165, 163, 145),
"dark grass green" => array(56, 128, 4),
"dusty teal" => array(76, 144, 133),
"grey teal" => array(94, 155, 138),
"macaroni and cheese" => array(239, 180, 53),
"pinkish tan" => array(217, 155, 130),
"spruce" => array(10, 95, 56),
"strong blue" => array(12, 6, 247),
"toxic green" => array(97, 222, 42),
"windows blue" => array(55, 120, 191),
"blue blue" => array(34, 66, 199),
"blue with a hint of purple" => array(83, 60, 198),
"booger" => array(155, 181, 60),
"bright sea green" => array(5, 255, 166),
"dark green blue" => array(31, 99, 87),
"deep turquoise" => array(1, 115, 116),
"green teal" => array(12, 181, 119),
"strong pink" => array(255, 7, 137),
"bland" => array(175, 168, 139),
"deep aqua" => array(8, 120, 127),
"lavender pink" => array(221, 133, 215),
"light moss green" => array(166, 200, 117),
"light seafoam green" => array(167, 255, 181),
"olive yellow" => array(194, 183, 9),
"pig pink" => array(231, 142, 165),
"deep lilac" => array(150, 110, 189),
"desert" => array(204, 173, 96),
"dusty lavender" => array(172, 134, 168),
"purpley grey" => array(148, 126, 148),
"purply" => array(152, 63, 178),
"candy pink" => array(255, 99, 233),
"light pastel green" => array(178, 251, 165),
"boring green" => array(99, 179, 101),
"kiwi green" => array(142, 229, 63),
"light grey green" => array(183, 225, 161),
"orange pink" => array(255, 111, 82),
"tea green" => array(189, 248, 163),
"very light brown" => array(211, 182, 131),
"egg shell" => array(255, 252, 196),
"eggplant purple" => array(67, 5, 65),
"powder pink" => array(255, 178, 208),
"reddish grey" => array(153, 117, 112),
"baby shit brown" => array(173, 144, 13),
"liliac" => array(196, 142, 253),
"stormy blue" => array(80, 123, 156),
"ugly brown" => array(125, 113, 3),
"custard" => array(255, 253, 120),
"darkish pink" => array(218, 70, 125),
"deep brown" => array(65, 2, 0),
"greenish beige" => array(201, 209, 121),
"manilla" => array(255, 250, 134),
"off blue" => array(86, 132, 174),
"battleship grey" => array(107, 124, 133),
"browny green" => array(111, 108, 10),
"bruise" => array(126, 64, 113),
"kelley green" => array(0, 147, 55),
"sickly yellow" => array(208, 228, 41),
"sunny yellow" => array(255, 249, 23),
"azul" => array(29, 93, 236),
"darkgreen" => array(5, 73, 7),
"green/yellow" => array(181, 206, 8),
"lichen" => array(143, 182, 123),
"light light green" => array(200, 255, 176),
"pale gold" => array(253, 222, 108),
"sun yellow" => array(255, 223, 34),
"tan green" => array(169, 190, 112),
"burple" => array(104, 50, 227),
"butterscotch" => array(253, 177, 71),
"toupe" => array(199, 172, 125),
"dark cream" => array(255, 243, 154),
"indian red" => array(133, 14, 4),
"light lavendar" => array(239, 192, 254),
"poison green" => array(64, 253, 20),
"baby puke green" => array(182, 196, 6),
"bright yellow green" => array(157, 255, 0),
"charcoal grey" => array(60, 65, 66),
"squash" => array(242, 171, 21),
"cinnamon" => array(172, 79, 6),
"light pea green" => array(196, 254, 130),
"radioactive green" => array(44, 250, 31),
"raw sienna" => array(154, 98, 0),
"baby purple" => array(202, 155, 247),
"cocoa" => array(135, 95, 66),
"light royal blue" => array(58, 46, 254),
"orangeish" => array(253, 141, 73),
"rust brown" => array(139, 49, 3),
"sand brown" => array(203, 165, 96),
"swamp" => array(105, 131, 57),
"tealish green" => array(12, 220, 115),
"burnt siena" => array(183, 82, 3),
"camo" => array(127, 143, 78),
"dusk blue" => array(38, 83, 141),
"fern" => array(99, 169, 80),
"old rose" => array(200, 127, 137),
"pale light green" => array(177, 252, 153),
"peachy pink" => array(255, 154, 138),
"rosy pink" => array(246, 104, 142),
"light bluish green" => array(118, 253, 168),
"light bright green" => array(83, 254, 92),
"light neon green" => array(78, 253, 84),
"light seafoam" => array(160, 254, 191),
"tiffany blue" => array(123, 242, 218),
"washed out green" => array(188, 245, 166),
"browny orange" => array(202, 107, 2),
"nice blue" => array(16, 122, 176),
"sapphire" => array(33, 56, 171),
"greyish teal" => array(113, 159, 145),
"orangey yellow" => array(253, 185, 21),
"parchment" => array(254, 252, 175),
"straw" => array(252, 246, 121),
"very dark brown" => array(29, 2, 0),
"terracota" => array(203, 104, 67),
"ugly blue" => array(49, 102, 138),
"clear blue" => array(36, 122, 253),
"creme" => array(255, 255, 182),
"foam green" => array(144, 253, 169),
"grey/green" => array(134, 161, 125),
"light gold" => array(253, 220, 92),
"seafoam blue" => array(120, 209, 182),
"topaz" => array(19, 187, 175),
"violet pink" => array(251, 95, 252),
"wintergreen" => array(32, 249, 134),
"yellow tan" => array(255, 227, 110),
"dark fuchsia" => array(157, 7, 89),
"indigo blue" => array(58, 24, 177),
"light yellowish green" => array(194, 255, 137),
"pale magenta" => array(215, 103, 173),
"rich purple" => array(114, 0, 88),
"sunflower yellow" => array(255, 218, 3),
"green/blue" => array(1, 192, 141),
"leather" => array(172, 116, 52),
"racing green" => array(1, 70, 0),
"vivid purple" => array(153, 0, 250),
"dark royal blue" => array(2, 6, 111),
"hazel" => array(142, 118, 24),
"muted pink" => array(209, 118, 143),
"booger green" => array(150, 180, 3),
"canary" => array(253, 255, 99),
"cool grey" => array(149, 163, 166),
"dark taupe" => array(127, 104, 78),
"darkish purple" => array(117, 25, 115),
"true green" => array(8, 148, 4),
"coral pink" => array(255, 97, 99),
"dark sage" => array(89, 133, 86),
"dark slate blue" => array(33, 71, 97),
"flat blue" => array(60, 115, 168),
"mushroom" => array(186, 158, 136),
"rich blue" => array(2, 27, 249),
"dirty purple" => array(115, 74, 101),
"greenblue" => array(35, 196, 139),
"icky green" => array(143, 174, 34),
"light khaki" => array(230, 242, 162),
"warm blue" => array(75, 87, 219),
"dark hot pink" => array(217, 1, 102),
"deep sea blue" => array(1, 84, 130),
"carmine" => array(157, 2, 22),
"dark yellow green" => array(114, 143, 2),
"pale peach" => array(255, 229, 173),
"plum purple" => array(78, 5, 80),
"golden rod" => array(249, 188, 8),
"neon red" => array(255, 7, 58),
"old pink" => array(199, 121, 134),
"very pale blue" => array(214, 255, 254),
"blood orange" => array(254, 75, 3),
"grapefruit" => array(253, 89, 86),
"sand yellow" => array(252, 225, 102),
"clay brown" => array(178, 113, 61),
"dark blue grey" => array(31, 59, 77),
"flat green" => array(105, 157, 76),
"light green blue" => array(86, 252, 162),
"warm pink" => array(251, 85, 129),
"dodger blue" => array(62, 130, 252),
"gross green" => array(160, 191, 22),
"ice" => array(214, 255, 250),
"metallic blue" => array(79, 115, 142),
"pale salmon" => array(255, 177, 154),
"sap green" => array(92, 139, 21),
"algae" => array(84, 172, 104),
"bluey grey" => array(137, 160, 176),
"greeny grey" => array(126, 160, 122),
"highlighter green" => array(27, 252, 6),
"light light blue" => array(202, 255, 251),
"light mint" => array(182, 255, 187),
"raw umber" => array(167, 94, 9),
"vivid blue" => array(21, 46, 255),
"deep lavender" => array(141, 94, 183),
"dull teal" => array(95, 158, 143),
"light greenish blue" => array(99, 247, 180),
"mud green" => array(96, 102, 2),
"pinky" => array(252, 134, 170),
"red wine" => array(140, 0, 52),
"shit green" => array(117, 128, 0),
"tan brown" => array(171, 126, 76),
"darkblue" => array(3, 7, 100),
"rosa" => array(254, 134, 164),
"lipstick" => array(213, 23, 78),
"pale mauve" => array(254, 208, 252),
"claret" => array(104, 0, 24),
"dandelion" => array(254, 223, 8),
"orangered" => array(254, 66, 15),
"poop green" => array(111, 124, 0),
"ruby" => array(202, 1, 71),
"dark" => array(27, 36, 49),
"greenish turquoise" => array(0, 251, 176),
"pastel red" => array(219, 88, 86),
"piss yellow" => array(221, 214, 24),
"bright cyan" => array(65, 253, 254),
"dark coral" => array(207, 82, 78),
"algae green" => array(33, 195, 111),
"darkish red" => array(169, 3, 8),
"reddy brown" => array(110, 16, 5),
"blush pink" => array(254, 130, 140),
"camouflage green" => array(75, 97, 19),
"lawn green" => array(77, 164, 9),
"putty" => array(190, 174, 138),
"vibrant blue" => array(3, 57, 248),
"dark sand" => array(168, 143, 89),
"purple/blue" => array(93, 33, 208),
"saffron" => array(254, 178, 9),
"twilight" => array(78, 81, 139),
"warm brown" => array(150, 78, 2),
"bluegrey" => array(133, 163, 178),
"bubble gum pink" => array(255, 105, 175),
"duck egg blue" => array(195, 251, 244),
"greenish cyan" => array(42, 254, 183),
"petrol" => array(0, 95, 106),
"royal" => array(12, 23, 147),
"butter" => array(255, 255, 129),
"dusty orange" => array(240, 131, 58),
"off yellow" => array(241, 243, 63),
"pale olive green" => array(177, 210, 123),
"orangish" => array(252, 130, 74),
"leaf" => array(113, 170, 52),
"light blue grey" => array(183, 201, 226),
"dried blood" => array(75, 1, 1),
"lightish purple" => array(165, 82, 230),
"rusty red" => array(175, 47, 13),
"lavender blue" => array(139, 136, 248),
"light grass green" => array(154, 247, 100),
"light mint green" => array(166, 251, 178),
"sunflower" => array(255, 197, 18),
"velvet" => array(117, 8, 81),
"brick orange" => array(193, 74, 9),
"lightish red" => array(254, 47, 74),
"pure blue" => array(2, 3, 226),
"twilight blue" => array(10, 67, 122),
"violet red" => array(165, 0, 85),
"yellowy brown" => array(174, 139, 12),
"carnation" => array(253, 121, 143),
"muddy yellow" => array(191, 172, 5),
"dark seafoam green" => array(62, 175, 118),
"deep rose" => array(199, 71, 103),
"dusty red" => array(185, 72, 78),
"grey/blue" => array(100, 125, 142),
"lemon lime" => array(191, 254, 40),
"purple/pink" => array(215, 37, 222),
"brown yellow" => array(178, 151, 5),
"purple brown" => array(103, 58, 63),
"wisteria" => array(168, 125, 194),
"banana yellow" => array(250, 254, 75),
"lipstick red" => array(192, 2, 47),
"water blue" => array(14, 135, 204),
"brown grey" => array(141, 132, 104),
"vibrant purple" => array(173, 3, 222),
"baby green" => array(140, 255, 158),
"barf green" => array(148, 172, 2),
"eggshell blue" => array(196, 255, 247),
"sandy yellow" => array(253, 238, 115),
"cool green" => array(51, 184, 100),
"pale" => array(255, 249, 208),
"blue/grey" => array(117, 141, 163),
"hot magenta" => array(245, 4, 201),
"greyblue" => array(119, 161, 181),
"purpley" => array(135, 86, 228),
"baby shit green" => array(136, 151, 23),
"brownish pink" => array(194, 126, 121),
"dark aquamarine" => array(1, 115, 113),
"diarrhea" => array(159, 131, 3),
"light mustard" => array(247, 213, 96),
"pale sky blue" => array(189, 246, 254),
"turtle green" => array(117, 184, 79),
"bright olive" => array(156, 187, 4),
"dark grey blue" => array(41, 70, 91),
"greeny brown" => array(105, 96, 6),
"lemon green" => array(173, 248, 2),
"light periwinkle" => array(193, 198, 252),
"seaweed green" => array(53, 173, 107),
"sunshine yellow" => array(255, 253, 55),
"ugly purple" => array(164, 66, 160),
"medium pink" => array(243, 97, 150),
"puke brown" => array(148, 119, 6),
"very light pink" => array(255, 244, 242),
"viridian" => array(30, 145, 103),
"bile" => array(181, 195, 6),
"faded yellow" => array(254, 255, 127),
"very pale green" => array(207, 253, 188),
"vibrant green" => array(10, 221, 8),
"bright lime" => array(135, 253, 5),
"spearmint" => array(30, 248, 118),
"light aquamarine" => array(123, 253, 199),
"light sage" => array(188, 236, 172),
"yellowgreen" => array(187, 249, 15),
"baby poo" => array(171, 144, 4),
"dark seafoam" => array(31, 181, 122),
"deep teal" => array(0, 85, 90),
"heather" => array(164, 132, 172),
"rust orange" => array(196, 85, 8),
"dirty blue" => array(63, 130, 157),
"fern green" => array(84, 141, 68),
"bright lilac" => array(201, 94, 251),
"weird green" => array(58, 229, 127),
"peacock blue" => array(1, 103, 149),
"avocado green" => array(135, 169, 34),
"faded orange" => array(240, 148, 77),
"grape purple" => array(93, 20, 81),
"hot green" => array(37, 255, 41),
"lime yellow" => array(208, 254, 29),
"mango" => array(255, 166, 43),
"shamrock" => array(1, 180, 76),
"bubblegum" => array(255, 108, 181),
"purplish brown" => array(107, 66, 71),
"vomit yellow" => array(199, 193, 12),
"pale cyan" => array(183, 255, 250),
"key lime" => array(174, 255, 110),
"tomato red" => array(236, 45, 1),
"lightgreen" => array(118, 255, 123),
"merlot" => array(115, 0, 57),
"night blue" => array(4, 3, 72),
"purpleish pink" => array(223, 78, 200),
"apple" => array(110, 203, 60),
"baby poop green" => array(143, 152, 5),
"green apple" => array(94, 220, 31),
"heliotrope" => array(217, 79, 245),
"yellow/green" => array(200, 253, 61),
"almost black" => array(7, 13, 13),
"cool blue" => array(73, 132, 184),
"leafy green" => array(81, 183, 59),
"mustard brown" => array(172, 126, 4),
"dusk" => array(78, 84, 129),
"dull brown" => array(135, 110, 75),
"frog green" => array(88, 188, 8),
"vivid green" => array(47, 239, 16),
"bright light green" => array(45, 254, 84),
"fluro green" => array(10, 255, 2),
"kiwi" => array(156, 239, 67),
"seaweed" => array(24, 209, 123),
"navy green" => array(53, 83, 10),
"ultramarine blue" => array(24, 5, 219),
"iris" => array(98, 88, 196),
"pastel orange" => array(255, 150, 79),
"yellowish orange" => array(255, 171, 15),
"perrywinkle" => array(143, 140, 231),
"tealish" => array(36, 188, 168),
"dark plum" => array(63, 1, 44),
"pear" => array(203, 248, 95),
"pinkish orange" => array(255, 114, 76),
"midnight purple" => array(40, 1, 55),
"light urple" => array(179, 111, 246),
"dark mint" => array(72, 192, 114),
"greenish tan" => array(188, 203, 122),
"light burgundy" => array(168, 65, 91),
"turquoise blue" => array(6, 177, 196),
"ugly pink" => array(205, 117, 132),
"sandy" => array(241, 218, 122),
"electric pink" => array(255, 4, 144),
"muted purple" => array(128, 91, 135),
"mid green" => array(80, 167, 71),
"greyish" => array(168, 164, 149),
"neon yellow" => array(207, 255, 4),
"banana" => array(255, 255, 126),
"carnation pink" => array(255, 127, 167),
"tomato" => array(239, 64, 38),
"sea" => array(60, 153, 146),
"muddy brown" => array(136, 104, 6),
"turquoise green" => array(4, 244, 137),
"buff" => array(254, 246, 158),
"fawn" => array(207, 175, 123),
"muted blue" => array(59, 113, 159),
"pale rose" => array(253, 193, 197),
"dark mint green" => array(32, 192, 115),
"amethyst" => array(155, 95, 192),
"blue/green" => array(15, 155, 142),
"chestnut" => array(116, 40, 2),
"sick green" => array(157, 185, 44),
"pea" => array(164, 191, 32),
"rusty orange" => array(205, 89, 9),
"stone" => array(173, 165, 135),
"rose red" => array(190, 1, 60),
"pale aqua" => array(184, 255, 235),
"deep orange" => array(220, 77, 1),
"earth" => array(162, 101, 62),
"mossy green" => array(99, 139, 39),
"grassy green" => array(65, 156, 3),
"pale lime green" => array(177, 255, 101),
"light grey blue" => array(157, 188, 212),
"pale grey" => array(253, 253, 254),
"asparagus" => array(119, 171, 86),
"blueberry" => array(70, 65, 150),
"purple red" => array(153, 1, 71),
"pale lime" => array(190, 253, 115),
"greenish teal" => array(50, 191, 132),
"caramel" => array(175, 111, 9),
"deep magenta" => array(160, 2, 92),
"light peach" => array(255, 216, 177),
"milk chocolate" => array(127, 78, 30),
"ocher" => array(191, 155, 12),
"off green" => array(107, 163, 83),
"purply pink" => array(240, 117, 230),
"lightblue" => array(123, 200, 246),
"dusky blue" => array(71, 95, 148),
"golden" => array(245, 191, 3),
"light beige" => array(255, 254, 182),
"butter yellow" => array(255, 253, 116),
"dusky purple" => array(137, 91, 123),
"french blue" => array(67, 107, 173),
"ugly yellow" => array(208, 193, 1),
"greeny yellow" => array(198, 248, 8),
"orangish red" => array(244, 54, 5),
"shamrock green" => array(2, 193, 77),
"orangish brown" => array(178, 95, 3),
"tree green" => array(42, 126, 25),
"deep violet" => array(73, 6, 72),
"gunmetal" => array(83, 98, 103),
"blue/purple" => array(90, 6, 239),
"cherry" => array(207, 2, 52),
"sandy brown" => array(196, 166, 97),
"warm grey" => array(151, 138, 132),
"dark indigo" => array(31, 9, 84),
"midnight" => array(3, 1, 45),
"bluey green" => array(43, 177, 121),
"grey pink" => array(195, 144, 155),
"soft purple" => array(166, 111, 181),
"blood" => array(119, 0, 1),
"brown red" => array(146, 43, 5),
"medium grey" => array(125, 127, 124),
"berry" => array(153, 15, 75),
"poo" => array(143, 115, 3),
"purpley pink" => array(200, 60, 185),
"light salmon" => array(254, 169, 147),
"snot" => array(172, 187, 13),
"easter purple" => array(192, 113, 254),
"light yellow green" => array(204, 253, 127),
"dark navy blue" => array(0, 2, 46),
"drab" => array(130, 131, 68),
"light rose" => array(255, 197, 203),
"rouge" => array(171, 18, 57),
"purplish red" => array(176, 5, 75),
"slime green" => array(153, 204, 4),
"baby poop" => array(147, 124, 0),
"irish green" => array(1, 149, 41),
"pink/purple" => array(239, 29, 231),
"dark navy" => array(0, 4, 53),
"greeny blue" => array(66, 179, 149),
"light plum" => array(157, 87, 131),
"pinkish grey" => array(200, 172, 169),
"dirty orange" => array(200, 118, 6),
"rust red" => array(170, 39, 4),
"pale lilac" => array(228, 203, 255),
"orangey red" => array(250, 66, 36),
"primary blue" => array(8, 4, 249),
"kermit green" => array(92, 178, 0),
"brownish purple" => array(118, 66, 78),
"murky green" => array(108, 122, 14)
);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9132 次 |
| 最近记录: |