Location: PHPKode > projects > TVEz - Media Library > tvez-0.2.1/html/shared/Graph/RGB.php
<?php

# -----------------------------------------------------------------------------
#
# The base class for all the colors
#
# Colors may be specified as
#  - named colors
#  - RGB triplets
#  - HTML hex format (#XXXXXX)
#
# -----------------------------------------------------------------------------
#
# Copyright (C) 2004 Christian Eheim
#
# This file is part of TVEz (tvez.sourceforge.net).
#
# TVEz is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# TVEz is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with TVEz; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
#
# -----------------------------------------------------------------------------
#
# Created on 02/01/2004 by Christian Eheim (hide@address.com)
#
# LAST MODIFIED:
# $Date: 2004/02/03 00:02:17 $
# $Revision: 1.2 $
# $Author: eheim $
#
# -----------------------------------------------------------------------------

class RGB {
	var $_colorTable;
	function RGB($image=Null) {
		$this->_image	= $image;

		# Named colors
		$this->_colorTable = 		array (
			"aqua"		=> array(0,255,255),		
			"lime"		=> array(0,255,0),		
			"teal"		=> array(0,128,128),
			"whitesmoke"		=> array(245,245,245),
			"gainsboro"		=> array(220,220,220),
			"oldlace"		=> array(253,245,230),
			"linen"		=> array(250,240,230),
			"antiquewhite"		=> array(250,235,215),
			"papayawhip"		=> array(255,239,213),
			"blanchedalmond"		=> array(255,235,205),
			"bisque"		=> array(255,228,196),
			"peachpuff"		=> array(255,218,185),
			"navajowhite"		=> array(255,222,173),
			"moccasin"		=> array(255,228,181),
			"cornsilk"		=> array(255,248,220),
			"ivory"		=> array(255,255,240),
			"lemonchiffon"		=> array(255,250,205),
			"seashell"		=> array(255,245,238),
			"mintcream"		=> array(245,255,250),
			"azure"		=> array(240,255,255),
			"aliceblue"		=> array(240,248,255),
			"lavender"		=> array(230,230,250),
			"lavenderblush"		=> array(255,240,245),
			"mistyrose"		=> array(255,228,225),
			"white"		=> array(255,255,255),
			"black"		=> array(0,0,0),
			"darkslategray"		=> array(47,79,79),
			"dimgray"		=> array(105,105,105),
			"slategray"		=> array(112,128,144),
			"lightslategray"		=> array(119,136,153),
			"gray"		=> array(190,190,190),
			"lightgray"		=> array(211,211,211),
			"midnightblue"		=> array(25,25,112),
			"navy"		=> array(0,0,128),
			"cornflowerblue"		=> array(100,149,237),
			"darkslateblue"		=> array(72,61,139),
			"slateblue"		=> array(106,90,205),
			"mediumslateblue"		=> array(123,104,238),
			"lightslateblue"		=> array(132,112,255),
			"mediumblue"		=> array(0,0,205),
			"royalblue"		=> array(65,105,225),
			"blue"		=> array(0,0,255),
			"dodgerblue"		=> array(30,144,255),
			"deepskyblue"		=> array(0,191,255),
			"skyblue"		=> array(135,206,235),
			"lightskyblue"		=> array(135,206,250),
			"steelblue"		=> array(70,130,180),
			"lightred"		=> array(211,167,168),
			"lightsteelblue"		=> array(176,196,222),
			"lightblue"		=> array(173,216,230),
			"powderblue"		=> array(176,224,230),
			"paleturquoise"		=> array(175,238,238),
			"darkturquoise"		=> array(0,206,209),
			"mediumturquoise"		=> array(72,209,204),
			"turquoise"		=> array(64,224,208),
			"cyan"		=> array(0,255,255),
			"lightcyan"		=> array(224,255,255),
			"cadetblue"		=> array(95,158,160),
			"mediumaquamarine"		=> array(102,205,170),
			"aquamarine"		=> array(127,255,212),
			"darkgreen"		=> array(0,100,0),
			"darkolivegreen"		=> array(85,107,47),
			"darkseagreen"		=> array(143,188,143),
			"seagreen"		=> array(46,139,87),
			"mediumseagreen"		=> array(60,179,113),
			"lightseagreen"		=> array(32,178,170),
			"palegreen"		=> array(152,251,152),
			"springgreen"		=> array(0,255,127),
			"lawngreen"		=> array(124,252,0),
			"green"		=> array(0,255,0),
			"chartreuse"		=> array(127,255,0),
			"mediumspringgreen"		=> array(0,250,154),
			"greenyellow"		=> array(173,255,47),
			"limegreen"		=> array(50,205,50),
			"yellowgreen"		=> array(154,205,50),
			"forestgreen"		=> array(34,139,34),
			"olivedrab"		=> array(107,142,35),
			"darkkhaki"		=> array(189,183,107),
			"khaki"		=> array(240,230,140),
			"palegoldenrod"		=> array(238,232,170),
			"lightgoldenrodyellow"		=> array(250,250,210),
			"lightyellow"		=> array(255,255,200),
			"yellow"		=> array(255,255,0),
			"gold"		=> array(255,215,0),
			"lightgoldenrod"		=> array(238,221,130),
			"goldenrod"		=> array(218,165,32),
			"darkgoldenrod"		=> array(184,134,11),
			"rosybrown"		=> array(188,143,143),
			"indianred"		=> array(205,92,92),
			"saddlebrown"		=> array(139,69,19),
			"sienna"		=> array(160,82,45),
			"peru"		=> array(205,133,63),
			"burlywood"		=> array(222,184,135),
			"beige"		=> array(245,245,220),
			"wheat"		=> array(245,222,179),
			"sandybrown"		=> array(244,164,96),
			"tan"		=> array(210,180,140),
			"chocolate"		=> array(210,105,30),
			"firebrick"		=> array(178,34,34),
			"brown"		=> array(165,42,42),
			"darksalmon"		=> array(233,150,122),
			"salmon"		=> array(250,128,114),
			"lightsalmon"		=> array(255,160,122),
			"orange"		=> array(255,165,0),
			"darkorange"		=> array(255,140,0),
			"coral"		=> array(255,127,80),
			"lightcoral"		=> array(240,128,128),
			"tomato"		=> array(255,99,71),
			"orangered"		=> array(255,69,0),
			"red"		=> array(255,0,0),
			"hotpink"		=> array(255,105,180),
			"deeppink"		=> array(255,20,147),
			"pink"		=> array(255,192,203),
			"lightpink"		=> array(255,182,193),
			"palevioletred"		=> array(219,112,147),
			"maroon"		=> array(176,48,96),
			"mediumvioletred"		=> array(199,21,133),
			"violetred"		=> array(208,32,144),
			"magenta"		=> array(255,0,255),
			"violet"		=> array(238,130,238),
			"plum"		=> array(221,160,221),
			"orchid"		=> array(218,112,214),
			"mediumorchid"		=> array(186,85,211),
			"darkorchid"		=> array(153,50,204),
			"darkviolet"		=> array(148,0,211),
			"blueviolet"		=> array(138,43,226),
			"purple"		=> array(160,32,240),
			"mediumpurple"		=> array(147,112,219),
			"thistle"		=> array(216,191,216),
			"snow1"		=> array(255,250,250),
			"snow2"		=> array(238,233,233),
			"snow3"		=> array(205,201,201),
			"snow4"		=> array(139,137,137),
			"seashell1"		=> array(255,245,238),
			"seashell2"		=> array(238,229,222),
			"seashell3"		=> array(205,197,191),
			"seashell4"		=> array(139,134,130),
			"AntiqueWhite1"		=> array(255,239,219),
			"AntiqueWhite2"		=> array(238,223,204),
			"AntiqueWhite3"		=> array(205,192,176),
			"AntiqueWhite4"		=> array(139,131,120),
			"bisque1"		=> array(255,228,196),
			"bisque2"		=> array(238,213,183),
			"bisque3"		=> array(205,183,158),
			"bisque4"		=> array(139,125,107),
			"peachPuff1"		=> array(255,218,185),
			"peachpuff2"		=> array(238,203,173),
			"peachpuff3"		=> array(205,175,149),
			"peachpuff4"		=> array(139,119,101),
			"navajowhite1"		=> array(255,222,173),
			"navajowhite2"		=> array(238,207,161),
			"navajowhite3"		=> array(205,179,139),
			"navajowhite4"		=> array(139,121,94),
			"lemonchiffon1"		=> array(255,250,205),
			"lemonchiffon2"		=> array(238,233,191),
			"lemonchiffon3"		=> array(205,201,165),
			"lemonchiffon4"		=> array(139,137,112),
			"ivory1"		=> array(255,255,240),
			"ivory2"		=> array(238,238,224),
			"ivory3"		=> array(205,205,193),
			"ivory4"		=> array(139,139,131),
			"honeydew"		=> array(193,205,193),
			"lavenderblush1"		=> array(255,240,245),
			"lavenderblush2"		=> array(238,224,229),
			"lavenderblush3"		=> array(205,193,197),
			"lavenderblush4"		=> array(139,131,134),
			"mistyrose1"		=> array(255,228,225),
			"mistyrose2"		=> array(238,213,210),
			"mistyrose3"		=> array(205,183,181),
			"mistyrose4"		=> array(139,125,123),
			"azure1"		=> array(240,255,255),
			"azure2"		=> array(224,238,238),
			"azure3"		=> array(193,205,205),
			"azure4"		=> array(131,139,139),
			"slateblue1"		=> array(131,111,255),
			"slateblue2"		=> array(122,103,238),
			"slateblue3"		=> array(105,89,205),
			"slateblue4"		=> array(71,60,139),
			"royalblue1"		=> array(72,118,255),
			"royalblue2"		=> array(67,110,238),
			"royalblue3"		=> array(58,95,205),
			"royalblue4"		=> array(39,64,139),
			"dodgerblue1"		=> array(30,144,255),
			"dodgerblue2"		=> array(28,134,238),
			"dodgerblue3"		=> array(24,116,205),
			"dodgerblue4"		=> array(16,78,139),
			"steelblue1"		=> array(99,184,255),
			"steelblue2"		=> array(92,172,238),
			"steelblue3"		=> array(79,148,205),
			"steelblue4"		=> array(54,100,139),
			"deepskyblue1"		=> array(0,191,255),
			"deepskyblue2"		=> array(0,178,238),
			"deepskyblue3"		=> array(0,154,205),
			"deepskyblue4"		=> array(0,104,139),
			"skyblue1"		=> array(135,206,255),
			"skyblue2"		=> array(126,192,238),
			"skyblue3"		=> array(108,166,205),
			"skyblue4"		=> array(74,112,139),
			"lightskyblue1"		=> array(176,226,255),
			"lightskyblue2"		=> array(164,211,238),
			"lightskyblue3"		=> array(141,182,205),
			"lightskyblue4"		=> array(96,123,139),
			"slategray1"		=> array(198,226,255),
			"slategray2"		=> array(185,211,238),
			"slategray3"		=> array(159,182,205),
			"slategray4"		=> array(108,123,139),
			"lightsteelblue1"		=> array(202,225,255),
			"lightsteelblue2"		=> array(188,210,238),
			"lightsteelblue3"		=> array(162,181,205),
			"lightsteelblue4"		=> array(110,123,139),
			"lightblue1"		=> array(191,239,255),
			"lightblue2"		=> array(178,223,238),
			"lightblue3"		=> array(154,192,205),
			"lightblue4"		=> array(104,131,139),
			"lightcyan1"		=> array(224,255,255),
			"lightcyan2"		=> array(209,238,238),
			"lightcyan3"		=> array(180,205,205),
			"lightcyan4"		=> array(122,139,139),
			"paleturquoise1"		=> array(187,255,255),
			"paleturquoise2"		=> array(174,238,238),
			"paleturquoise3"		=> array(150,205,205),
			"paleturquoise4"		=> array(102,139,139),
			"cadetblue1"		=> array(152,245,255),
			"cadetblue2"		=> array(142,229,238),
			"cadetblue3"		=> array(122,197,205),
			"cadetblue4"		=> array(83,134,139),
			"turquoise1"		=> array(0,245,255),
			"turquoise2"		=> array(0,229,238),
			"turquoise3"		=> array(0,197,205),
			"turquoise4"		=> array(0,134,139),
			"cyan1"		=> array(0,255,255),
			"cyan2"		=> array(0,238,238),
			"cyan3"		=> array(0,205,205),
			"cyan4"		=> array(0,139,139),
			"darkslategray1"		=> array(151,255,255),
			"darkslategray2"		=> array(141,238,238),
			"darkslategray3"		=> array(121,205,205),
			"darkslategray4"		=> array(82,139,139),
			"aquamarine1"		=> array(127,255,212),
			"aquamarine2"		=> array(118,238,198),
			"aquamarine3"		=> array(102,205,170),
			"aquamarine4"		=> array(69,139,116),
			"darkseagreen1"		=> array(193,255,193),
			"darkseagreen2"		=> array(180,238,180),
			"darkseagreen3"		=> array(155,205,155),
			"darkseagreen4"		=> array(105,139,105),
			"seagreen1"		=> array(84,255,159),
			"seagreen2"		=> array(78,238,148),
			"seagreen3"		=> array(67,205,128),
			"seagreen4"		=> array(46,139,87),
			"palegreen1"		=> array(154,255,154),
			"palegreen2"		=> array(144,238,144),
			"palegreen3"		=> array(124,205,124),
			"palegreen4"		=> array(84,139,84),
			"springgreen1"		=> array(0,255,127),
			"springgreen2"		=> array(0,238,118),
			"springgreen3"		=> array(0,205,102),
			"springgreen4"		=> array(0,139,69),
			"chartreuse1"		=> array(127,255,0),
			"chartreuse2"		=> array(118,238,0),
			"chartreuse3"		=> array(102,205,0),
			"chartreuse4"		=> array(69,139,0),
			"olivedrab1"		=> array(192,255,62),
			"olivedrab2"		=> array(179,238,58),
			"olivedrab3"		=> array(154,205,50),
			"olivedrab4"		=> array(105,139,34),
			"darkolivegreen1"		=> array(202,255,112),
			"darkolivegreen2"		=> array(188,238,104),
			"darkolivegreen3"		=> array(162,205,90),
			"darkolivegreen4"		=> array(110,139,61),
			"khaki1"		=> array(255,246,143),
			"khaki2"		=> array(238,230,133),
			"khaki3"		=> array(205,198,115),
			"khaki4"		=> array(139,134,78),
			"lightgoldenrod1"		=> array(255,236,139),
			"lightgoldenrod2"		=> array(238,220,130),
			"lightgoldenrod3"		=> array(205,190,112),
			"lightgoldenrod4"		=> array(139,129,76),
			"yellow1"		=> array(255,255,0),
			"yellow2"		=> array(238,238,0),
			"yellow3"		=> array(205,205,0),
			"yellow4"		=> array(139,139,0),
			"gold1"		=> array(255,215,0),
			"gold2"		=> array(238,201,0),
			"gold3"		=> array(205,173,0),
			"gold4"		=> array(139,117,0),
			"goldenrod1"		=> array(255,193,37),
			"goldenrod2"		=> array(238,180,34),
			"goldenrod3"		=> array(205,155,29),
			"goldenrod4"		=> array(139,105,20),
			"darkgoldenrod1"		=> array(255,185,15),
			"darkgoldenrod2"		=> array(238,173,14),
			"darkgoldenrod3"		=> array(205,149,12),
			"darkgoldenrod4"		=> array(139,101,8),
			"rosybrown1"		=> array(255,193,193),
			"rosybrown2"		=> array(238,180,180),
			"rosybrown3"		=> array(205,155,155),
			"rosybrown4"		=> array(139,105,105),
			"indianred1"		=> array(255,106,106),
			"indianred2"		=> array(238,99,99),
			"indianred3"		=> array(205,85,85),
			"indianred4"		=> array(139,58,58),
			"sienna1"		=> array(255,130,71),
			"sienna2"		=> array(238,121,66),
			"sienna3"		=> array(205,104,57),
			"sienna4"		=> array(139,71,38),
			"burlywood1"		=> array(255,211,155),
			"burlywood2"		=> array(238,197,145),
			"burlywood3"		=> array(205,170,125),
			"burlywood4"		=> array(139,115,85),
			"wheat1"		=> array(255,231,186),
			"wheat2"		=> array(238,216,174),
			"wheat3"		=> array(205,186,150),
			"wheat4"		=> array(139,126,102),
			"tan1"		=> array(255,165,79),
			"tan2"		=> array(238,154,73),
			"tan3"		=> array(205,133,63),
			"tan4"		=> array(139,90,43),
			"chocolate1"		=> array(255,127,36),
			"chocolate2"		=> array(238,118,33),
			"chocolate3"		=> array(205,102,29),
			"chocolate4"		=> array(139,69,19),
			"firebrick1"		=> array(255,48,48),
			"firebrick2"		=> array(238,44,44),
			"firebrick3"		=> array(205,38,38),
			"firebrick4"		=> array(139,26,26),
			"brown1"		=> array(255,64,64),
			"brown2"		=> array(238,59,59),
			"brown3"		=> array(205,51,51),
			"brown4"		=> array(139,35,35),
			"salmon1"		=> array(255,140,105),
			"salmon2"		=> array(238,130,98),
			"salmon3"		=> array(205,112,84),
			"salmon4"		=> array(139,76,57),
			"lightsalmon1"		=> array(255,160,122),
			"lightsalmon2"		=> array(238,149,114),
			"lightsalmon3"		=> array(205,129,98),
			"lightsalmon4"		=> array(139,87,66),
			"orange1"		=> array(255,165,0),
			"orange2"		=> array(238,154,0),
			"orange3"		=> array(205,133,0),
			"orange4"		=> array(139,90,0),
			"darkorange1"		=> array(255,127,0),
			"darkorange2"		=> array(238,118,0),
			"darkorange3"		=> array(205,102,0),
			"darkorange4"		=> array(139,69,0),
			"coral1"		=> array(255,114,86),
			"coral2"		=> array(238,106,80),
			"coral3"		=> array(205,91,69),
			"coral4"		=> array(139,62,47),
			"tomato1"		=> array(255,99,71),
			"tomato2"		=> array(238,92,66),
			"tomato3"		=> array(205,79,57),
			"tomato4"		=> array(139,54,38),
			"orangered1"		=> array(255,69,0),
			"orangered2"		=> array(238,64,0),
			"orangered3"		=> array(205,55,0),
			"orangered4"		=> array(139,37,0),
			"deeppink1"		=> array(255,20,147),
			"deeppink2"		=> array(238,18,137),
			"deeppink3"		=> array(205,16,118),
			"deeppink4"		=> array(139,10,80),
			"hotpink1"		=> array(255,110,180),
			"hotpink2"		=> array(238,106,167),
			"hotpink3"		=> array(205,96,144),
			"hotpink4"		=> array(139,58,98),
			"pink1"		=> array(255,181,197),
			"pink2"		=> array(238,169,184),
			"pink3"		=> array(205,145,158),
			"pink4"		=> array(139,99,108),
			"lightpink1"		=> array(255,174,185),
			"lightpink2"		=> array(238,162,173),
			"lightpink3"		=> array(205,140,149),
			"lightpink4"		=> array(139,95,101),
			"palevioletred1"		=> array(255,130,171),
			"palevioletred2"		=> array(238,121,159),
			"palevioletred3"		=> array(205,104,137),
			"palevioletred4"		=> array(139,71,93),
			"maroon1"		=> array(255,52,179),
			"maroon2"		=> array(238,48,167),
			"maroon3"		=> array(205,41,144),
			"maroon4"		=> array(139,28,98),
			"violetred1"		=> array(255,62,150),
			"violetred2"		=> array(238,58,140),
			"violetred3"		=> array(205,50,120),
			"violetred4"		=> array(139,34,82),
			"magenta1"		=> array(255,0,255),
			"magenta2"		=> array(238,0,238),
			"magenta3"		=> array(205,0,205),
			"magenta4"		=> array(139,0,139),
			"mediumred"		=> array(140,34,34),         
			"orchid1"		=> array(255,131,250),
			"orchid2"		=> array(238,122,233),
			"orchid3"		=> array(205,105,201),
			"orchid4"		=> array(139,71,137),
			"plum1"		=> array(255,187,255),
			"plum2"		=> array(238,174,238),
			"plum3"		=> array(205,150,205),
			"plum4"		=> array(139,102,139),
			"mediumorchid1"		=> array(224,102,255),
			"mediumorchid2"		=> array(209,95,238),
			"mediumorchid3"		=> array(180,82,205),
			"mediumorchid4"		=> array(122,55,139),
			"darkorchid1"		=> array(191,62,255),
			"darkorchid2"		=> array(178,58,238),
			"darkorchid3"		=> array(154,50,205),
			"darkorchid4"		=> array(104,34,139),
			"purple1"		=> array(155,48,255),
			"purple2"		=> array(145,44,238),
			"purple3"		=> array(125,38,205),
			"purple4"		=> array(85,26,139),
			"mediumpurple1"		=> array(171,130,255),
			"mediumpurple2"		=> array(159,121,238),
			"mediumpurple3"		=> array(137,104,205),
			"mediumpurple4"		=> array(93,71,139),
			"thistle1"		=> array(255,225,255),
			"thistle2"		=> array(238,210,238),
			"thistle3"		=> array(205,181,205),
			"thistle4"		=> array(139,123,139),
			"gray1"		=> array(10,10,10),
			"gray2"		=> array(40,40,30),
			"gray3"		=> array(70,70,70),
			"gray4"		=> array(100,100,100),
			"gray5"		=> array(130,130,130),
			"gray6"		=> array(160,160,160),
			"gray7"		=> array(190,190,190),
			"gray8"		=> array(210,210,210),
			"gray9"		=> array(240,240,240),
			"darkgray"		=> array(100,100,100),
			"darkblue"		=> array(0,0,139),
			"darkcyan"		=> array(0,139,139),
			"darkmagenta"		=> array(139,0,139),
			"darkred"		=> array(139,0,0),
			"silver"		=> array(192, 192, 192),
			"eggplant"		=> array(144,176,168),
			"lightgreen"		=> array(144,238,144)
		);
	}
	# ------------------------------------------------------------------
	# Takes a color and returns the decimal RGB triplet
	#
	# Colors may be names, hex format, or RGB decimal values
	# "name"		named color specified as string
	# #XXXXXX		hex rgb values (00-FF)
	# array(r,g,b)	array of decimal rgb values (0-255)
	# ------------------------------------------------------------------
	function color($color) {
		if ( is_string($color) ) {
			if ( preg_match("/^#/", $color) ) {
				$red	= hexdec( substr($color,1,2) );
				$green	= hexdec( substr($color,3,2) );
				$blue	= hexdec( substr($color,5,2) );
			}
			else {
				if ( isset($this->_colorTable[$color]) ) {
					$c = $this->_colorTable[$color];
					$red	= $c[0];
					$green	= $c[1];
					$blue	= $c[2];
				}
				else {
					$red	= 0;
					$green	= 0;
					$blue	= 0;
				}
			}
			return array( $red, $green, $blue );
		}
		elseif ( is_array($color) ) {
			return $color;
		}
		else {
			return array( 0, 0, 0 );
		}
	}

	# ----------------------------------------------------------------
	# Allocates a new image color
	# ----------------------------------------------------------------
	function allocate_color($color) {
		list($r,$g,$b) = $this->color($color);
		return ImageColorAllocate($this->_image, $r,$g, $b);
	}
}

?>
Return current item: TVEz - Media Library