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:
272
color.php
Normal file
272
color.php
Normal 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]);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user