* @license BSD */ //namespace Domframework; /** Convert the name of colors to RGB */ class color { /** The color list * From http://www.rapidtables.com/web/color/index.htm */ public $colorList = array ( // Black "black" => array (0, 0, 0), "dimgrey" => array (105, 105, 105), "grey" => array (128, 128, 128), "darkgrey" => array (169, 169, 169), "silver" => array (192, 192, 192), // Blue "aliceblue" => array (240, 248, 255), "lavender" => array (230, 230, 250), "powderblue" => array (176, 224, 230), "lightblue" => array (173, 216, 230), "lightskyblue" => array (135, 206, 250), "skyblue" => array (135, 206, 235), "deepskyblue" => array (0, 191, 255), "lightsteelblue" => array (176, 196, 222), "dodgerblue" => array (30, 144, 255), "cornflowerblue" => array (100, 149, 237), "steelblue" => array (70, 130, 180), "cadetblue" => array (95, 158, 160), "mediumslateblue" => array (123, 104, 238), "slateblue" => array (106, 90, 205), "darkslateblue" => array (72, 61, 139), "royalblue" => array (65, 105, 225), "blue" => array (0, 0, 255), "mediumblue" => array (0, 0, 205), "darkblue" => array (0, 0, 139), "navy" => array (0, 0, 128), "midnightblue" => array (25, 25, 112), "blueviolet" => array (138, 43, 226), "indigo" => array (75, 0, 130), // Brown "cornsilk" => array (255, 248, 220), "blanchedalmond" => array (255, 235, 205), "bisque" => array (255, 228, 196), "navajowhite" => array (255, 222, 173), "wheat" => array (245, 222, 179), "burlywood" => array (222, 184, 135), "tan" => array (210, 180, 140), "rosybrown" => array (188, 143, 143), "sandybrown" => array (244, 164, 96), "goldenrod" => array (218, 165, 32), "peru" => array (205, 133, 63), "chocolate" => array (210, 105, 30), "saddlebrown" => array (139, 69, 19), "sienna" => array (160, 82, 45), "brown" => array (165, 42, 42), "maroon" => array (128, 0, 0), // Cyan "lightcyan" => array (224, 255, 255), "cyan" => array (0, 255, 255), "aqua" => array (0, 255, 255), "aquamarine" => array (127, 255, 212), "mediumaquamarine" => array (102, 205, 170), "paleturquoise" => array (175, 238, 238), "turquoise" => array (64, 224, 208), "mediumturquoise" => array (72, 209, 204), "darkturquoise" => array (0, 206, 209), "lightseagreen" => array (32, 178, 170), "cadetblue" => array (95, 158, 160), "darkcyan" => array (0, 139, 139), "teal" => array (0, 128, 128), // Gold "lightgoldenrodyellow" => array (250, 250, 210), "palegoldenrod" => array (238, 232, 170), "khaki" => array (240, 230, 140), "goldenrod" => array (218, 165, 32), "gold" => array (255, 215, 0), "orange" => array (255, 165, 0), "darkorange" => array (255, 140, 0), "peru" => array (205, 133, 63), "chocolate" => array (210, 105, 30), "saddlebrown" => array (139, 69, 19), "sienna" => array (160, 82, 45), "goldenyellow" => array (255, 223, 0), "metallicgold" => array (212, 175, 55), "oldgold" => array (207, 181, 59), "vegasgold" => array (197, 179, 88), "palegold" => array (230, 190, 138), "goldenbrown" => array (153, 101, 21), // Green "lawngreen" => array (124, 252, 0), "chartreuse" => array (127, 255, 0), "limegreen" => array (50, 205, 50), "lime" => array (0, 255, 0), "forestgreen" => array (34, 139, 34), "green" => array (0, 128, 0), "darkgreen" => array (0, 100, 0), "greenyellow" => array (173, 255, 47), "yellowgreen" => array (154, 205, 50), "springgreen" => array (0, 255, 127), "mediumspringgreen" => array (0, 250, 154), "lightgreen" => array (144, 238, 144), "palegreen" => array (152, 251, 152), "darkseagreen" => array (143, 188, 143), "mediumseagreen" => array (60, 179, 113), "lightseagreen" => array (32, 178, 170), "seagreen" => array (46, 139, 87), "olive" => array (128, 128, 0), "darkolivegreen" => array (85, 107, 47), "olivedrab" => array (107, 142, 35), // Grey "gainsboro" => array (220, 220, 220), "lightgray" => array (211, 211, 211), "lightgrey" => array (211, 211, 211), "silver" => array (192, 192, 192), "darkgray" => array (169, 169, 169), "darkgrey" => array (169, 169, 169), "gray" => array (128, 128, 128), "grey" => array (128, 128, 128), "dimgray" => array (105, 105, 105), "dimgrey" => array (105, 105, 105), "lightslategray" => array (119, 136, 153), "lightslategrey" => array (119, 136, 153), "slategray" => array (112, 128, 144), "slategrey" => array (112, 128, 144), "darkslategray" => array (47, 79, 79), "darkslategrey" => array (47, 79, 79), "black" => array (0, 0, 0), // Maroon "maroon" => array (128, 0, 0), "darkred" => array (139, 0, 0), "brown" => array (165, 42, 42), "firebrick" => array (178, 34, 34), "crimson" => array (220, 20, 60), // Orange "coral" => array (255, 127, 80), "tomato" => array (255, 99, 71), "orangered" => array (255, 69, 0), "gold" => array (255, 215, 0), "orange" => array (255, 165, 0), "darkorange" => array (255, 140, 0), // Pink "pink" => array (255, 192, 203), "lightpink" => array (255, 182, 193), "hotpink" => array (255, 105, 180), "deeppink" => array (255, 20, 147), "palevioletred" => array (219, 112, 147), "mediumvioletred" => array (199, 21, 133), // Purple "lavender" => array (230, 230, 250), "thistle" => array (216, 191, 216), "plum" => array (221, 160, 221), "violet" => array (238, 130, 238), "orchid" => array (218, 112, 214), "fuchsia" => array (255, 0, 255), "magenta" => array (255, 0, 255), "mediumorchid" => array (186, 85, 211), "mediumpurple" => array (147, 112, 219), "blueviolet" => array (138, 43, 226), "darkviolet" => array (148, 0, 211), "darkorchid" => array (153, 50, 204), "darkmagenta" => array (139, 0, 139), "purple" => array (128, 0, 128), "indigo" => array (75, 0, 130), // Red "lightsalmon" => array (255, 160, 122), "salmon" => array (250, 128, 114), "darksalmon" => array (233, 150, 122), "lightcoral" => array (240, 128, 128), "indianred" => array (205, 92, 92), "crimson" => array (220, 20, 60), "firebrick" => array (178, 34, 34), "red" => array (255, 0, 0), "darkred" => array (139, 0, 0), "maroon" => array (128, 0, 0), "tomato" => array (255, 99, 71), "orangered" => array (255, 69, 0), "palevioletred" => array (219, 112, 147), // White "white" => array (255, 255, 255), "snow" => array (255, 250, 250), "honeydew" => array (240, 255, 240), "mintcream" => array (245, 255, 250), "azure" => array (240, 255, 255), "aliceblue" => array (240, 248, 255), "ghostwhite" => array (248, 248, 255), "whitesmoke" => array (245, 245, 245), "seashell" => array (255, 245, 238), "beige" => array (245, 245, 220), "oldlace" => array (253, 245, 230), "floralwhite" => array (255, 250, 240), "ivory" => array (255, 255, 240), "antiquewhite" => array (250, 235, 215), "linen" => array (250, 240, 230), "lavenderblush" => array (255, 240, 245), "mistyrose" => array (255, 228, 225), "navajowhite" => array (255, 222, 173), // Yellow "lightyellow" => array (255, 255, 224), "lemonchiffon" => array (255, 250, 205), "lightgoldenrodyellow" => array (250, 250, 210), "papayawhip" => array (255, 239, 213), "moccasin" => array (255, 228, 181), "peachpuff" => array (255, 218, 185), "palegoldenrod" => array (238, 232, 170), "khaki" => array (240, 230, 140), "darkkhaki" => array (189, 183, 107), "yellow" => array (255, 255, 0), "olive" => array (128, 128, 0), "greenyellow" => array (173, 255, 47), "yellowgreen" => array (154, 205, 50), "lightyellow1" => array (255, 255, 204), "lightyellow2" => array (255, 255, 153), "lightyellow3" => array (255, 255, 102), "lightyellow4" => array (255, 255, 51), "yellow" => array (255, 255, 0), "darkyellow1" => array (204, 204, 0), "darkyellow2" => array (153, 153, 0), "darkyellow3" => array (102, 102, 0), "darkyellow4" => array (51, 51, 0), ); /** Return the list of the known colors list */ public static function colorList () { $color = new \color (); $colorList = $color->colorList; return array_keys ($colorList); } /** Return an array with the RGB colors * @param string $colorInText The color in textual form */ public static function textToRGB ($colorInText) { $color = new \color (); $colorList = $color->colorList; if (! array_key_exists ($colorInText, $colorList)) throw new \Exception (sprintf (dgettext ("domframework", "Unknown color provided to graphColor::textToRGB: '%s'"), $colorInText), 500); return $colorList[$colorInText]; } /** Allocate the color provided in text to the provided GD object * @param resource $gd The GD resource to add the color * @param string $colorInText The color in textual form */ public static function allocateFromText ($gd, $colorInText) { if (! function_exists ("imagecolorallocate")) throw new \Exception (dgettext ("domframework", "No GD support in PHP : can't allocate color"), 500); $rgb = \color::textToRGB ($colorInText); return imagecolorallocate ($gd, $rgb[0], $rgb[1], $rgb[2]); } }