color : allow to translate a color in english to RGB or GD color

git-svn-id: https://svn.fournier38.fr/svn/ProgSVN/trunk@3347 bf3deb0d-5f1a-0410-827f-c0cc1f45334c
This commit is contained in:
2017-01-06 15:31:36 +00:00
parent 8578ebf7c4
commit 8f1c8162f6

272
color.php Normal file
View File

@@ -0,0 +1,272 @@
<?php
/** DomFramework
@package domframework
@author Dominique Fournier <dominique@fournier38.fr> */
/** 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
*/
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
*/
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]);
}
}