linea21-externals
[ class tree: linea21-externals ] [ index: linea21-externals ] [ all elements ]

Source for file Color.class.php

Documentation is available at Color.class.php

  1. <?php
  2. /*
  3.  * This work is hereby released into the Public Domain.
  4.  * To view a copy of the public domain dedication,
  5.  * visit http://creativecommons.org/licenses/publicdomain/ or send a letter to
  6.  * Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.
  7.  *
  8.  */
  9.  
  10. require_once dirname(__FILE__)."/../Graph.class.php";
  11.  
  12. /**
  13.  * Create your colors
  14.  *
  15.  * @package linea21.externals
  16.  * @subpackage artichow
  17.  */
  18. class awColor {
  19.  
  20.   public $red;
  21.   public $green;
  22.   public $blue;
  23.   public $alpha;
  24.  
  25.   /**
  26.    * Build your color
  27.    *
  28.    * @var int $red Red intensity (from 0 to 255)
  29.    * @var int $green Green intensity (from 0 to 255)
  30.    * @var int $blue Blue intensity (from 0 to 255)
  31.    * @var int $alpha Alpha channel (from 0 to 100)
  32.    */
  33.   public function __construct($red$green$blue$alpha 0{
  34.  
  35.     $this->red = (int)$red;
  36.     $this->green = (int)$green;
  37.     $this->blue = (int)$blue;
  38.     $this->alpha = (int)round($alpha 127 100);
  39.  
  40.   }
  41.  
  42.   /**
  43.    * Get RGB and alpha values of your color
  44.    *
  45.    * @return array 
  46.    */
  47.   public function getColor({
  48.     return $this->rgba();
  49.   }
  50.  
  51.   /**
  52.    * Change color brightness
  53.    *
  54.    * @param int $brightness Add this intensity to the color (betweeen -255 and +255)
  55.    */
  56.   public function brightness($brightness{
  57.  
  58.     $brightness = (int)$brightness;
  59.  
  60.     $this->red = min(255max(0$this->red + $brightness));
  61.     $this->green = min(255max(0$this->green + $brightness));
  62.     $this->blue = min(255max(0$this->blue + $brightness));
  63.  
  64.   }
  65.  
  66.   /**
  67.    * Get RGB and alpha values of your color
  68.    *
  69.    * @return array 
  70.    */
  71.   public function rgba({
  72.  
  73.     return array($this->red$this->green$this->blue$this->alpha);
  74.  
  75.   }
  76.  
  77. }
  78.  
  79. registerClass('Color');
  80.  
  81. $colors array(
  82.     'Black' => array(000),
  83.     'AlmostBlack' => array(484848),
  84.     'VeryDarkGray' => array(888888),
  85.     'DarkGray' => array(128128128),
  86.     'MidGray' => array(160160160),
  87.     'LightGray' => array(195195195),
  88.     'VeryLightGray' => array(220220220),
  89.     'White' => array(255255255),
  90.     'VeryDarkRed' => array(6400),
  91.     'DarkRed' => array(12800),
  92.     'MidRed' => array(19200),
  93.     'Red' => array(25500),
  94.     'LightRed' => array(255192192),
  95.     'VeryDarkGreen' => array(0640),
  96.     'DarkGreen' => array(01280),
  97.     'MidGreen' => array(01920),
  98.     'Green' => array(02550),
  99.     'LightGreen' => array(192255192),
  100.     'VeryDarkBlue' => array(0064),
  101.     'DarkBlue' => array(00128),
  102.     'MidBlue' => array(00192),
  103.     'Blue' => array(00255),
  104.     'LightBlue' => array(192192255),
  105.     'VeryDarkYellow' => array(64640),
  106.     'DarkYellow' => array(1281280),
  107.     'MidYellow' => array(1921920),
  108.     'Yellow' => array(2552552),
  109.     'LightYellow' => array(255255192),
  110.     'VeryDarkCyan' => array(06464),
  111.     'DarkCyan' => array(0128128),
  112.     'MidCyan' => array(0192192),
  113.     'Cyan' => array(0255255),
  114.     'LightCyan' => array(192255255),
  115.     'VeryDarkMagenta' => array(64064),
  116.     'DarkMagenta' => array(1280128),
  117.     'MidMagenta' => array(1920192),
  118.     'Magenta' => array(2550255),
  119.     'LightMagenta' => array(255192255),
  120.     'DarkOrange' => array(192880),
  121.     'Orange' => array(2551280),
  122.     'LightOrange' => array(25516888),
  123.     'VeryLightOrange' => array(255220168),
  124.     'DarkPink' => array(192088),
  125.     'Pink' => array(2550128),
  126.     'LightPink' => array(25588168),
  127.     'VeryLightPink' => array(255168220),
  128.     'DarkPurple' => array(880192),
  129.     'Purple' => array(1280255),
  130.     'LightPurple' => array(16888255),
  131.     'VeryLightPurple' => array(220168255),
  132. );
  133.  
  134. /* <php5> */
  135.  
  136. $php '';
  137.  
  138. foreach($colors as $name => $color{
  139.  
  140.   list($red$green$blue$color;
  141.  
  142.   $php .= '
  143.     class aw'.$name.' extends awColor {
  144.     
  145.         public function __construct($alpha = 0) {
  146.             parent::__construct('.$red.', '.$green.', '.$blue.', $alpha);
  147.         }
  148.     
  149.     }
  150.     ';
  151.  
  152.   if(ARTICHOW_PREFIX !== 'aw'{
  153.     $php .= '
  154.         class '.ARTICHOW_PREFIX.$name.' extends aw'.$name.' {
  155.         
  156.         }
  157.         ';
  158.   }
  159.  
  160. }
  161.  
  162. eval($php);
  163.  
  164. /* </php5> */
  165. /* <php4> --
  166.  
  167. $php = '';
  168.  
  169. foreach($colors as $name => $color) {
  170.  
  171. list($red, $green, $blue) = $color;
  172.  
  173. $php .= '
  174. class aw'.$name.' extends awColor {
  175.  
  176. function aw'.$name.'($alpha = 0) {
  177. parent::awColor('.$red.', '.$green.', '.$blue.', $alpha);
  178. }
  179.  
  180. }
  181. ';
  182.  
  183. if(ARTICHOW_PREFIX !== 'aw') {
  184. $php .= '
  185. class '.ARTICHOW_PREFIX.$name.' extends aw'.$name.' {
  186.  
  187. }
  188. ';
  189. }
  190.  
  191. }
  192.  
  193. eval($php);
  194.  
  195. -- </php4> */
  196.  
  197. ?>

Documentation generated on Thu, 03 May 2012 15:03:28 +0200 by phpDocumentor 1.4.1