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