Location: PHPKode > scripts > myColors > vylson-silwr-myColors-2550f71/core/info.class.php
<?php

	/**
	 * myColors
	 *
	 * Discover Your Colors!
	 *
	 * @author vylson silwr  <hide@address.com>
	 * @version 1.0
	 * @copyright   (C)2007 vylson silwr- GNU GPL
	 * @license       http://www.gnu.org/licenses/gpl.html GNU General public License
	 * @package myColors
	 */

	// -----------------info.class.php-------------------- //

	/**
	 *outputs information about color
	 *
	 *check rgb vaules, rgb percentages, hue degree, saturation, lightness, checks if
	 * name availabe, checks for web safe
	 */

	class info extends convert
	{

		/**
		 * 6 character hex color
		 *
		 * @var string
		 */
		private $_col;

		/**
		 * constructor
		 *
		 *sets color
		 *
		 * @return void
		 */

		public function __construct($col)
		{
			$this -> _col = $col;
			parent::__construct();
		}

		/**
		 * array of websafe colors
		 *
		 * @return array
		 */

		private function _websafe_colors()
		{
			$websafe_colors = array(
				'000000',
				'000033',
				'000066',
				'000099',
				'0000cc',
				'0000ff',
				'003300',
				'003333',
				'003366',
				'003399',
				'0033cc',
				'0033ff',
				'006600',
				'006633',
				'006666',
				'006699',
				'0066cc',
				'0066ff',
				'009900',
				'009933',
				'009966',
				'009999',
				'0099cc',
				'0099ff',
				'00cc00',
				'00cc33',
				'00cc66',
				'00cc99',
				'00cccc',
				'00ccff',
				'00ff00',
				'00ff33',
				'00ff66',
				'00ff99',
				'00ffcc',
				'00ffff',
				'330000',
				'330033',
				'330066',
				'330099',
				'3300cc',
				'3300ff',
				'333300',
				'333333',
				'333366',
				'333399',
				'3333cc',
				'3333ff',
				'336600',
				'336633',
				'336666',
				'336699',
				'3366cc',
				'3366ff',
				'339900',
				'339933',
				'339966',
				'339999',
				'3399cc',
				'3399ff',
				'33cc00',
				'33cc33',
				'33cc66',
				'33cc99',
				'33cccc',
				'33ccff',
				'33ff00',
				'33ff33',
				'33ff66',
				'33ff99',
				'33ffcc',
				'33ffff',
				'660000',
				'660033',
				'660066',
				'660099',
				'6600cc',
				'6600ff',
				'663300',
				'663333',
				'663366',
				'663399',
				'6633cc',
				'6633ff',
				'666600',
				'666633',
				'666666',
				'666699',
				'6666cc',
				'6666ff',
				'669900',
				'669933',
				'669966',
				'669999',
				'6699cc',
				'6699ff',
				'66cc00',
				'66cc33',
				'66cc66',
				'66cc99',
				'66cccc',
				'66ccff',
				'66ff00',
				'66ff33',
				'66ff66',
				'66ff99',
				'66ffcc',
				'66ffff',
				'990000',
				'990033',
				'990066',
				'990099',
				'9900cc',
				'9900ff',
				'993300',
				'993333',
				'993366',
				'993399',
				'9933cc',
				'9933ff',
				'996600',
				'996633',
				'996666',
				'996699',
				'9966cc',
				'9966ff',
				'999900',
				'999933',
				'999966',
				'999999',
				'9999cc',
				'9999ff',
				'99cc00',
				'99cc33',
				'99cc66',
				'99cc99',
				'99cccc',
				'99ccff',
				'99ff00',
				'99ff33',
				'99ff66',
				'99ff99',
				'99ffcc',
				'99ffff',
				'cc0000',
				'cc0033',
				'cc0066',
				'cc0099',
				'cc00cc',
				'cc00ff',
				'cc3300',
				'cc3333',
				'cc3366',
				'cc3399',
				'cc33cc',
				'cc33ff',
				'cc6600',
				'cc6633',
				'cc6666',
				'cc6699',
				'cc66cc',
				'cc66ff',
				'cc9900',
				'cc9933',
				'cc9966',
				'cc9999',
				'cc99cc',
				'cc99ff',
				'cccc00',
				'cccc33',
				'cccc66',
				'cccc99',
				'cccccc',
				'ccccff',
				'ccff00',
				'ccff33',
				'ccff66',
				'ccff99',
				'ccffcc',
				'ccffff',
				'ff0000',
				'ff0033',
				'ff0066',
				'ff0099',
				'ff00cc',
				'ff00ff',
				'ff3300',
				'ff3333',
				'ff3366',
				'ff3399',
				'ff33cc',
				'ff33ff',
				'ff6600',
				'ff6633',
				'ff6666',
				'ff6699',
				'ff66cc',
				'ff66ff',
				'ff9900',
				'ff9933',
				'ff9966',
				'ff9999',
				'ff99cc',
				'ff99ff',
				'ffcc00',
				'ffcc33',
				'ffcc66',
				'ffcc99',
				'ffcccc',
				'ffccff',
				'ffff00',
				'ffff33',
				'ffff66',
				'ffff99',
				'ffffcc',
				'ffffff'
			);

			return $websafe_colors;
		}

		/**
		 * checks for valid 3 character hex
		 *
		 * @return bool
		 */

		private function _to_3char_hex()
		{

			if ($this -> _col[0] == $this -> _col[1] && $this -> _col[2] == $this -> _col[3] && $this -> _col[4] == $this -> _col[5])
				return TRUE;
			return FALSE;
		}

		/**
		 * checks whether given color is web safe color
		 *
		 * @return bool
		 */

		private function _check_websafe()
		{
			if (array_search($this -> _col, $this -> _websafe_colors(), TRUE))
				return TRUE;
			return FALSE;
		}

		/**
		 * calculates rgb, hsl values and add to an array
		 *
		 * @return array
		 */

		public function infos()
		{
			$rgb = $this -> hex_to_rgb($this -> _col);
			$red_pc = round(($rgb[0] / 256) * 100);
			$green_pc = round(($rgb[1] / 256) * 100);
			$blue_pc = round(($rgb[2] / 256) * 100);

			$hsl = $this -> rgb_to_hsl($rgb);
			$h = ($hsl['hue'] * 360) . ' degree';
			$s = $hsl['saturation'] * 100;
			$l = $hsl['lightness'] * 100;

			$red = $rgb[0];
			$green = $rgb[1];
			$blue = $rgb[2];

			$info_all = array(
				'red' => $red,
				'green' => $green,
				'blue' => $blue,
				'red perentage' => $red_pc,
				'green perentage' => $green_pc,
				'blue perentage' => $blue_pc,
				'hue' => $h,
				'saturation' => $s,
				'lightness' => $l
			);
			if ($this -> _check_websafe())
				$info_all = array_merge($info_all, array('websafe' => 'TRUE'));
			if ($this -> _to_3char_hex())
			{

				$col = $this -> _col[0] . $this -> _col[2] . $this -> _col[4];
				$info_all = array_merge($info_all, array('3 char hex' => $col));

			}

			$cn = array_search('#' . $this -> _col, $this -> _color_names);

			if ($cn != '')

				$info_all = array_merge($info_all, array('color name' => $cn));

			return array(
				'hex color' => $this -> _col,
				'info' => $info_all
			);

		}

	}

	//--------------class ends---------------//
Return current item: myColors