| Server IP : 61.19.30.66 / Your IP : 216.73.216.59 Web Server : Apache/2.2.22 (Ubuntu) System : Linux klw 3.11.0-15-generic #25~precise1-Ubuntu SMP Thu Jan 30 17:39:31 UTC 2014 x86_64 User : www-data ( 33) PHP Version : 5.3.10-1ubuntu3.48 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, MySQL : ON | cURL : OFF | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : OFF Directory : /var/www/gpa/libchart/classes/view/color/ |
Upload File : |
<?php
/* Libchart - PHP chart library
* Copyright (C) 2005-2011 Jean-Marc Trémeaux (jm.tremeaux at gmail.com)
*
* This program 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 3 of the License, or
* (at your option) any later version.
*
* This program 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 this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/**
* Color.
*
* @author Jean-Marc Trémeaux (jm.tremeaux at gmail.com)
*/
class Color {
private $red;
private $green;
private $blue;
private $alpha;
private $gdColor;
/**
* Creates a new color
*
* @param integer red [0..255]
* @param integer green [0..255]
* @param integer blue [0..255]
* @param integer alpha [0..255]
*/
public function Color($red, $green, $blue, $alpha = 0) {
$this->red = (int) $red;
$this->green = (int) $green;
$this->blue = (int) $blue;
$this->alpha = (int) round($alpha * 127.0 / 255);
$this->gdColor = null;
}
/**
* Get GD color.
*
* @param $img GD image resource
*/
public function getColor($img) {
// Checks if color has already been allocated
if (!$this->gdColor) {
if ($this->alpha == 0 || !function_exists('imagecolorallocatealpha')) {
$this->gdColor = imagecolorallocate($img, $this->red, $this->green, $this->blue);
} else {
$this->gdColor = imagecolorallocatealpha($img, $this->red, $this->green, $this->blue, $this->alpha);
}
}
// Returns GD color
return $this->gdColor;
}
/**
* Clip a color component in the interval [0..255]
*
* @param integer Component
* @return Clipped component
*/
public function clip($component) {
if ($component < 0) {
$component = 0;
} else if ($component > 255) {
$component = 255;
}
return $component;
}
/**
* Return a new color, which is a shadow of this one.
*
* @param double Multiplication factor
* @return Shadow color
*/
public function getShadowColor($shadowFactor) {
$red = $this->clip($this->red * $shadowFactor);
$green = $this->clip($this->green * $shadowFactor);
$blue = $this->clip($this->blue * $shadowFactor);
$shadowColor = new Color($red, $green, $blue);
return $shadowColor;
}
}
?>