Source for file AGraph.class.php

Documentation is available at AGraph.class.php

  1. <?php
  2. /**
  3.  * @author Takács Ákos (Rimelek), programmer [at] rimelek [dot] hu
  4.  * @copyright Copyright (C) 2008, Takács Ákos
  5.  * @package REPHPGraph
  6.  */
  7.  
  8. /**
  9.  * Legfelső absztrakt ősosztály
  10.  * 
  11.  * Minden további osztály közvetve ennek az osztálynak a leszármazottja.<br />
  12.  *  
  13.  * @version 1.0
  14.  * @author Takács Ákos (Rimelek), programmer [at] rimelek [dot] hu
  15.  * @copyright Copyright (C) 2008, Takács Ákos
  16.  * @package REPHPGraph
  17.  */
  18. abstract class AGraph
  19. {
  20.     /**
  21.      * Képazonosító
  22.      * 
  23.      * Csak olvasható (readonly)
  24.      * 
  25.      * @var int $source 
  26.      */
  27.     protected $source;
  28.     /**
  29.      * Kép háttérszíne
  30.      * 
  31.      * @var int 
  32.      */
  33.     protected $backGround;
  34.     /**
  35.      * Kép magassága
  36.      * 
  37.      * @var int 
  38.      */
  39.     protected $height   = 0;        
  40.     /**
  41.      * Kép szélessége
  42.      * 
  43.      * @var int 
  44.      */
  45.     protected $width    = 0;
  46.     /**
  47.      * Kép típusa
  48.      * 
  49.      * Engedélyezett típusok: {@link $types}
  50.      * 
  51.      * @var string 
  52.      */
  53.     protected $type     = 'jpeg';
  54.     /**
  55.      * Támogatott képtípusok
  56.      *  
  57.      * csak olvasható (readonly)
  58.      * 
  59.      * @var array 
  60.      */
  61.     protected $types    = array(1=>'gif','jpeg','jpg','png');
  62.     /**
  63.      * Kép minősége
  64.      * 
  65.      * Ennek tulajdonságnak csak JPEG esetén van értelme.<br />
  66.      * GIF vagy PNG minőségét nem lehet állítani<br />
  67.      * 0 <= $quality <= 100
  68.      * 
  69.      * @var int 
  70.      */
  71.         protected $quality = 100;                
  72.     /**
  73.      * Kép átlátszósága
  74.      * 
  75.      * Értéke: false | true
  76.      * 
  77.      * @var boolean 
  78.      */
  79.     protected $transparent = false;
  80.         
  81.     /**
  82.      * Beállítja a tulajdonságok értékét
  83.      * 
  84.      * A __set() metódus akkor fut le, amikor egy változónak értéket prbálunk adni.<br />
  85.      * Ezzel korlátozható a tulajdonságok írási joga
  86.      * 
  87.      * @param string $var Változó neve
  88.      * @param mixed $value Változó értéke
  89.      * @return void 
  90.      */
  91.     function __set($var,$value)
  92.     {
  93.         switch ($var{
  94.             case 'quality'
  95.                 $value = (int)$value;
  96.                 if ($value 0$value 0;
  97.                 else if($value 100$value=100;
  98.                 $this->quality = $value;        
  99.                 break;
  100.             case 'height'case 'width'case 'backGround':
  101.                 $value = (int)$value;
  102.                 if ($value 0$value 0;
  103.                 $this->$var $value;
  104.                 break;
  105.             case 'type':
  106.                 $value strtolower($value);
  107.                 if (in_array($value,$this->types)) {
  108.                     $this->type = $value;
  109.                 else {
  110.                     throw new SetTypeException("Hibás típus");
  111.                 }
  112.                 break;
  113.             case 'transparent':
  114.                 $this->$var ($value === true or $value == 'true'true false;
  115.             default$this->$var $value;
  116.         }
  117.     }
  118.     /**
  119.      * Változok értékeinek lekérdezése
  120.      * 
  121.      * A __get() metódus akkor fut le, amikor egy változó értékét próbáljuk lekérdezni.<br />
  122.      * Ezzel korlátozható a tulajdonságok olvasási joga
  123.      * 
  124.      * @param string $var 
  125.      * @return mixed 
  126.      */
  127.      function __get($var)
  128.     {
  129.         return $this->$var;
  130.     }
  131.     
  132.     /**
  133.      * Színek előállítása
  134.      * 
  135.      * Ez a metóus három féle képpen használható. Egyik módja, ha megadjuk a kívánt szín RGB értékeit,
  136.      * három külön paraméterben így:
  137.      * <code>
  138.      * $color = $graph->createColor(0,0,255);
  139.      * </code>
  140.      * Ami egy kék színt hoz létre. A másik megoldás, hogy megadjuk az első paraméterben stringként,
  141.      * vesszőkkel elválasztva az egyes színkomponenseket:
  142.      * <code>
  143.      * $color = $graph->createColor("0,0,255");
  144.      * </code>
  145.      * És végül az utolsó módszer, a hexadecimális értékmegadás:
  146.      * <code>
  147.      * $color = $graph->createColor("#0000FF");
  148.      * </code>
  149.      * 
  150.      * @param mixed $color int | string
  151.      * @param int $greenc 
  152.      * @param int $bluec 
  153.      * @return int 
  154.      */
  155.     public function createColor($color,$greenc=null,$bluec=null)
  156.     {
  157.         //ha mind a három paraméter meg van adva
  158.         if($bluec !== null and $greenc !== null{
  159.             $red $color;
  160.             $green $greenc;
  161.             $blue $bluec;
  162.         //ha csak az első paraméter van megadva
  163.         else {
  164.             //akkor ha # jellel kezdődik
  165.             if(substr($color,0,1== '#'{
  166.                 //hexadecimális formátumnak tekinti.
  167.                 //felbontja 3 részre és decimálisba váltja a részeket
  168.                 $red_hex substr($color,1,2);
  169.                 $green_hex substr($color,3,2);
  170.                 $blue_hex substr($color,5,2);
  171.                 $red hexdec($red_hex);
  172.                 $green hexdec($green_hex);
  173.                 $blue hexdec($blue_hex);
  174.             //egyébként
  175.             else {
  176.                 //vesszük mentén 3 részre vágja a szánt (rgb)
  177.                 $color explode(',',$color);
  178.                 $red $color[0];
  179.                 $green $color[1];
  180.                 $blue $color[2];
  181.             }
  182.         }
  183.         //szín generálása
  184.         return imageColorAllocate($this->source,$red,$green,$blue);
  185.     }
  186. }
  187. ?>

Documentation generated on Tue, 09 Feb 2010 01:17:45 +0100 by phpDocumentor 1.4.1