* @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]); } }