php function problem with color -


i have made function returns color based on rgb color (used @ param)

but have problem color (100,76,66). brown color function returns dark olive green.

is there mistake in function ?

example:

$str_color = getcolornamebyrgbcolors('100,76,66'); echo $str_color;  function getcolornamebyrgbcolors($str_comma_sep_rbg) { /* php function colorname problem */      $arr_input = explode(',', $str_comma_sep_rbg);      // dark olive green     // based on -->     http://www.w3.org/tr/svg/types.html#colorkeywords     $arr_colors = array(             'alice blue'            =>  array(240, 248, 255),             'antique white'         =>  array(250, 235, 215),             'aqua'                  =>  array(0, 255, 255), // ***             'aquamarine'            =>  array(127, 255, 212),             'azure'                 =>  array(240, 255, 255),             'beige'                 =>  array(245, 245, 220),             'bisque'                =>  array(255, 228, 196),             'black'                 =>  array(0, 0, 0),             'blanched almond'       =>  array(255, 235, 205),             'blue'                  =>  array(0, 0, 255),             'blue violet'           =>  array(138, 43, 226),             'brown'                 =>  array(165, 42, 42),             'burlywood'             =>  array(222, 184, 135),             'cadet blue'            =>  array(95, 158, 160),             'chartreuse'            =>  array(127, 255, 0),             'chocolate'             =>  array(210, 105, 30),             'coral'                 =>  array(255, 127, 80),             'cornflower blue'       =>  array(100, 149, 237),             'cornsilk'              =>  array(255, 248, 220),             'crimson'               =>  array(220, 20, 60), // ***             'cyan'                  =>  array(0, 255, 255),             'dark blue'             =>  array(0, 0, 139),             'dark cyan'             =>  array(0, 139, 139),             'dark goldenrod'        =>  array(184, 134, 11),             'dark green'            =>  array(0, 100, 0),             'dark grey'             =>  array(169, 169, 169),             'dark khaki'            =>  array(189, 183, 107),             'dark magenta'          =>  array(139, 0, 139),             'dark olive green'      =>  array(85, 107, 47),             'dark orange'           =>  array(255, 140, 0),             'dark orchid'           =>  array(153, 50, 204),             'dark red'              =>  array(139, 0, 0),             'dark salmon'           =>  array(233, 150, 122),             'dark sea green'        =>  array(143, 188, 143),             'dark slate blue'       =>  array(72, 61, 139),             'dark slate gray'       =>  array(47, 79, 79),             'dark turquoise'        =>  array(0, 206, 209),             'dark violet'           =>  array(148, 0, 211),             'deep pink'             =>  array(255, 20, 147),             'deep sky blue'         =>  array(0, 191, 255),             'dim gray'              =>  array(105, 105, 105),             'dodger blue'           =>  array(30, 144, 255),             'firebrick'             =>  array(178, 34, 34),             'floral white'          =>  array(255, 250, 240),             'forest green'          =>  array(34, 139, 34),             'fuchsia'               =>  array(255, 0, 255),     // ****              'gainsboro'             =>  array(220, 220, 220),             'ghost white'           =>  array(248, 248, 255),             'gold'                  =>  array(255, 215, 0),             'goldenrod'             =>  array(218, 165, 32),             'grey'                  =>  array(128, 128, 128),             'green'                 =>  array(0, 128, 0),             'green yellow'          =>  array(173, 255, 47),             'honeydew'              =>  array(240, 255, 240),             'hot pink'              =>  array(255, 105, 180),             'indian red'            =>  array(205, 92, 92),             'indigo'                =>  array(75, 0, 130),             'ivory'                 =>  array(255, 255, 240),             'khaki'                 =>  array(240, 230, 140),             'lavender'              =>  array(230, 230, 250),             'lavender blush'        =>  array(255, 240, 245),             'lawn green'            =>  array(124, 252, 0),             'lemon chiffon'         =>  array(255, 250, 205),             'light blue'            =>  array(173, 216, 230),             'light coral'           =>  array(240, 128, 128),             'light cyan'            =>  array(224, 255, 255),             'light goldenrod yellow'=>  array(250, 250, 210),             'light gray'            =>  array(211, 211, 211),             'light green'           =>  array(144, 238, 144),             'light pink'            =>  array(255, 182, 193),             'light salmon'          =>  array(255, 160, 122),             'light sea green'       =>  array(32, 178, 170),             'light sky blue'        =>  array(135, 206, 250),             'light slate gray'      =>  array(119, 136, 153),             'light steel blue'      =>  array(176, 196, 222),             'light yellow'          =>  array(255, 255, 224),             'lime'                  =>  array(0, 255, 0),             'lime green'            =>  array(50, 205, 50),             'linen'                 =>  array(250, 240, 230),             'magenta'               =>  array(255, 0, 255),     //  ****d             'maroon'                =>  array(128, 0, 0),             'medium aquamarine'     =>  array(102, 205, 170),             'medium blue'           =>  array(0, 0, 205),             'medium orchid'         =>  array(186, 85, 211),             'medium purple'         =>  array(147, 112, 219),             'medium sea green'      =>  array(60, 179, 113),             'medium slate blue'     =>  array(123, 104, 238),             'medium spring green'   =>  array(0, 250, 154),             'medium turquoise'      =>  array(72, 209, 204),             'medium violet red'     =>  array(199, 21, 133),             'midnight blue'         =>  array(25, 25, 112),             'mint cream'            =>  array(245, 255, 250),             'misty rose'            =>  array(255, 228, 225),             'moccasin'              =>  array(255, 228, 181),             'navajo white'          =>  array(255, 222, 173),             'navy'                  =>  array(0, 0, 128),             'old lace'              =>  array(253, 245, 230),             'olive'                 =>  array(128, 128, 0), // ****             'olive drab'            =>  array(107, 142, 35),             'orange'                =>  array(255, 165, 0),             'orange red'            =>  array(255, 69, 0),             'orchid'                =>  array(218, 112, 214),             'pale goldenrod'        =>  array(238, 232, 170),             'pale green'            =>  array(152, 251, 152),             'pale turquoise'        =>  array(175, 238, 238),             'pale violet red'       =>  array(219, 112, 147),             'papaya whip'           =>  array(255, 239, 213),             'peach puff'            =>  array(255, 218, 185),             'peru'                  =>  array(205, 133, 63),             'pink'                  =>  array(255, 192, 203),             'plum'                  =>  array(221, 160, 221),             'powder blue'           =>  array(176, 224, 230),             'purple'                =>  array(128, 0, 128),             'red'                   =>  array(255, 0, 0),             'rosy brown'            =>  array(188, 143, 143),             'royal blue'            =>  array(65, 105, 225),             'saddle brown'          =>  array(139, 69, 19),             'salmon'                =>  array(250, 128, 114),             'sandy brown'           =>  array(244, 164, 96),             'sea green'             =>  array(46, 139, 87),             'seashell'              =>  array(255, 245, 238),             'sienna'                =>  array(160, 82, 45),             'silver'                =>  array(192, 192, 192),             'sky blue'              =>  array(135, 206, 235),             'slate blue'            =>  array(106, 90, 205),             'slate gray'            =>  array(112, 128, 144),             'snow'                  =>  array(255, 250, 250),             'spring green'          =>  array(0, 255, 127),             'steel blue'            =>  array(70, 130, 180),             'tan'                   =>  array(210, 180, 140),             'teal'                  =>  array(0, 128, 128),             'thistle'               =>  array(216, 191, 216),             'tomato'                =>  array(255, 99, 71),             'turquoise'             =>  array(64, 224, 208),             'violet'                =>  array(238, 130, 238),             'wheat'                 =>  array(245, 222, 179),             'white'                 =>  array(255, 255, 255),             'white smoke'           =>  array(245, 245, 245),             'yellow'                =>  array(255, 255, 0),             'yellow green'          =>  array(154, 205, 50)     );     foreach($arr_colors $key=>$color) {         // $diff = abs($arr_input[0] - $color[0]) + abs($arr_input[1] - $color[1]) + abs($arr_input[2] - $color[2]);          // code looks right, ran , got silver. however, tried squaring differences in components , got (what thought was) better answer: lichtsteelblue. here's code used:          $diff = pow($arr_input[0] - $color[0],2) + pow($arr_input[1] - $color[1], 2) + pow($arr_input[2] - $color[2], 2);          $array[$key] = $diff;     }     asort($array);     reset($array);      list($key, $diff) = each($array);     return $key; } 

where brown colour code (100,76,66). dont have , return false statements if search unsuccessfull


Comments

Popular posts from this blog

c# - How to set Z index when using WPF DrawingContext? -

razor - Is this a bug in WebMatrix PageData? -

visual c++ - Using relative values in array sorting ( asm ) -