<?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---------------//