File: /home2/obrechts/bad.public_html.bad/wordpress/wp-content/themes/platform/includes/class.colors.php
<?php
/**
*
*
* PageLines Color Calculations and Handling
*
*
* @package PageLines Core
* @subpackage Post Types
* @since 1.3.0
*
*/
class PageLinesColor {
var $tabs = array(); // Controller for drawing meta options
/**
* PHP5 constructor
*
*/
function __construct( $hex ) {
$this->base_hex = $hex;
$this->base_rgb = $this->hex_to_rgb( $this->base_hex );
$this->base_hsl = $this->rgb_to_hsl( $this->base_rgb );
}
function adjust( $adjustment, $mode = 'lightness' ){
$h = $this->base_hsl['hugh'];
$s = $this->base_hsl['saturation'];
$l = $this->base_hsl['lightness'];
if(is_array($adjustment)){
$l = $l + $adjustment['lightness'];
$h = $h + $adjustment['hugh'];
$s = $s + $adjustment['saturation'];
} else {
if($mode == 'lightness'){
$l = $l + $adjustment;
} elseif($mode == 'hugh') {
$h = $h + $adjustment;
} elseif($mode == 'saturation') {
$s = $s + $adjustment;
}
}
// Adjust for hue 180* scale
if ($h > 1) $h -= 1;
if ($s > 1) $s = 1;
if ($l > 1) $l = 1;
if ($h < 0) $h += 1;
if ($s < 0) $s = 0;
if ($l < 0) $l = 0;
$new_hsl = array( 'hugh' => $h, 'saturation' => $s, 'lightness' => $l );
return $this->hsl_to_hex( $new_hsl );
}
function adjust_hugh(){
$h = $this->base_hsl['hugh'];
$s = $this->base_hsl['saturation'];
$l = $this->base_hsl['lightness'];
$l = $l + $adjustment;
$new_hsl = array( 'hugh' => $h, 'saturation' => $s, 'lightness' => $l );
return $this->hsl_to_hex( $new_hsl );
$h2 = $h + 0.5;
if ($h2 > 1)
{
$h2 -= 1;
};
}
function hex_to_rgb( $hexcode ){
$redhex = substr( $hexcode, 0, 2 );
$greenhex = substr( $hexcode, 2, 2 );
$bluehex = substr( $hexcode, 4, 2 );
// $var_r, $var_g and $var_b are the three decimal fractions to be input to our RGB-to-HSL conversion routine
$r = hexdec($redhex);
$g = hexdec($greenhex);
$b = hexdec($bluehex);
return array( 'red' => $r, 'green' => $g, 'blue' => $b );
}
function rgb_to_hsl( $rgb ){
$red = $this->base_rgb['red'];
$green = $this->base_rgb['green'];
$blue = $this->base_rgb['blue'];
$var_red = $red / 255;
$var_green = $green / 255;
$var_blue = $blue / 255;
$var_min = min( $var_red, $var_green, $var_blue );
$var_max = max( $var_red, $var_green, $var_blue );
$del_max = $var_max - $var_min;
$l = ($var_max + $var_min) / 2;
if ($del_max == 0){
$h = 0;
$s = 0;
} else {
if ($l < 0.5) {
$s = $del_max / ($var_max + $var_min);
} else {
$s = $del_max / (2 - $var_max - $var_min);
};
$del_r = ((($var_max - $var_red) / 6) + ($del_max / 2)) / $del_max;
$del_g = ((($var_max - $var_green) / 6) + ($del_max / 2)) / $del_max;
$del_b = ((($var_max - $var_blue) / 6) + ($del_max / 2)) / $del_max;
if ($var_red == $var_max) {
$h = $del_b - $del_g;
} elseif ($var_green == $var_max) {
$h = (1 / 3) + $del_r - $del_b;
} elseif ($var_blue == $var_max) {
$h = (2 / 3) + $del_g - $del_r;
};
if ($h < 0) {
$h += 1;
};
if ($h > 1) {
$h -= 1;
};
};
return array( 'hugh' => $h, 'saturation' => $s, 'lightness' => $l );
}
function hsl_to_hex( $hsl ){
$rgb = $this->hsl_to_rgb($hsl);
$hex = $this->rgb_to_hex($rgb);
return $hex;
}
function hsl_to_rgb( $hsl ){
// Input is HSL value of complementary colour, held in $h2, $s, $l as fractions of 1
// Output is RGB in normal 255 255 255 format, held in $r, $g, $b
// Hue is converted using function hue_2_rgb, shown at the end of this code
$h = $hsl['hugh'];
$s = $hsl['saturation'];
$l = $hsl['lightness'];
if ($s == 0) {
$r = $l * 255;
$g = $l * 255;
$b = $l * 255;
} else {
if ($l < 0.5) {
$var_2 = $l * (1 + $s);
} else {
$var_2 = ($l + $s) - ($s * $l);
};
$var_1 = 2 * $l - $var_2;
$r = 255 * $this->_hue_to_rgb( $var_1, $var_2, $h + (1 / 3) );
$g = 255 * $this->_hue_to_rgb( $var_1, $var_2, $h );
$b = 255 * $this->_hue_to_rgb( $var_1, $var_2, $h - (1 / 3) );
};
return array( 'red' => $r, 'green' => $g, 'blue' => $b );
}
function _hue_to_rgb( $v1, $v2, $vh ) {
if ($vh < 0) {
$vh += 1;
};
if ($vh > 1) {
$vh -= 1;
};
if ((6 * $vh) < 1) {
return ($v1 + ($v2 - $v1) * 6 * $vh);
};
if ((2 * $vh) < 1) {
return ($v2);
};
if ((3 * $vh) < 2) {
return ($v1 + ($v2 - $v1) * ((2 / 3 - $vh) * 6));
};
return ($v1);
}
function rgb_to_hex($rgb){
$r = $rgb['red'];
$g = $rgb['green'];
$b = $rgb['blue'];
$rhex = sprintf( "%02X", round($r) );
$ghex = sprintf( "%02X", round($g) );
$bhex = sprintf( "%02X", round($b) );
$hex = $rhex.$ghex.$bhex;
return $hex;
}
}
//-------- END OF CLASS --------//