Source for file Graph.class.php
Documentation is available at Graph.class.php
* Ez a program megkönnyíti a bonyolultabb alakzatok és megoldások generálását PHP-ben képekre.<br />
* Alapvetően 3 féle típus támogatott. GIF, JPEG és PNG<br />
* A generált képek megjeleníthetők a böngészőben, vagy lementhetők a webszerverre, illetve a kliens gépre is.
* @author Takács Ákos (Rimelek), programmer [at] rimelek [dot] hu
* @copyright Copyright (C) 2008, Takács Ákos
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
* @example examples/fullExample.php Teljes példa
require_once dirname(__FILE__
).
"/functions.php";
require_once dirname(__FILE__
).
"/AGraph.class.php";
* FileExistsException ipmortálása
require_once dirname(__FILE__
).
"/exceptions/FileExistsException.class.php";
* DirExistsException ipmortálása
require_once dirname(__FILE__
).
"/exceptions/DirExistsException.class.php";
* Grafikát vezérlő osztály
* Ebből az osztályból példányosított objektum segítségével hozható létre fő kép,<br />
* amire ráhelyezhetők a további alakzatok, minták, képek.<br />
* Lehetőséget nyújt az eredmény szerverre, valamint kliens gépre mentésére, illetve a böngészőben megjelenítésre.<br />
* Tartalmaz továbbá egy, a színek létrehozására szolgáló {@link createColor()} metódust is.
* Üres fekete kép létrehozása ( 200 x 200 )
* $graph = new Graph(200,200);
* $graph->setBackground(0,0,0);
* @author Takács Ákos (Rimelek), programmer [at] rimelek [dot] hu
* @copyright Copyright (C) 2008, Takács Ákos
* Képre felvitt alakzatok erőforrás azonosítóinak listája
* Grafikus elemek importja
* @param mixed $objects Importálandó grafikus elem osztályok neve
* (Ha egy osztály, lehet string. Több esetén tömb
* illetve paraméter nélkül hívva az összes grafikus elem)
self::import('objects',$objects);
* @param mixed $iterators Importálandó iterátor osztályok neve
* (Ha egy osztály, lehet string. Több esetén tömb
* illetve paraméter nélkül hívva az összes grafikus elem)
self::import('iterators',$iterators);
* @param string $dir Mappa neve, ahol az importálandó osztályok vannak
* @param mixed $objects Importálandó osztályok neve
* (Ha egy osztály, lehet string. Több esetén tömb
* illetve paraméter nélkül hívva az összes grafikus elem)
public static function import($dir,$classes=
null) {
$classes =
array($classes);
foreach ($classes as $object) {
if ($object !=
'.' and $object !=
'..' and !is_dir($dir.
'/'.
$object)) {
if (!$all) { $object .=
'.class.php'; }
require_once $dir.
'/'.
$object;
* Kép háttérszínének lekérdezése
return $this->background;
* Kép háttérszínének beállítása
* Paraméterezése és működése megegyezik a {@link createColor()}
* metódus paraméterezésével működésével.
* Létrehoz egy üres képet $width szélességgel és $height magassággal
* @param int $width Kép szélessége
* @param int $height Kép magassága
* Objektumok hozzáadása a képhez
* Minden újabb képet, vagy alakzatot át kell adni a Graph osztályból példányosított objektumnak.<br />
* Ez a metódus meghívja az objektum {@link IObject::create()} metódusát, majd létrehozza
* a megfelelő típusú képet. Ennek a képnek az erőforrásazonosítóját hozzáadja a az {@link $objects} listához.
//ha a transparent tulajdonság true, akkor háttérszín beállítása áttetszővé
if ($object->transparent ===
true) {
imageColorTransparent($object->source,$object->backGround);
if (!array_search($object->type,$object->types,true) or $object->type ==
"jpg") {
if ($object->transparent ===
true) {
$this->createImage($object,'image'.
$object->type);
//kimenet elfogásával az erőforrásazonosító betöltése az $objects listába
$object->source =
imageCreateFromString($image);
* Felépíti az $objects listából a képet
* @return string imageGif | imageJpeg | imagePng
private function buildImage()
//háttérszínnel kitölti a fő képet
//szükség esetén áttetszővé teszi a hátteret
//az $objects tömb összes elemét rámásolja a fő képre
foreach($this->objects as $key =>
$object) {
imagecopy($this->source,$object->source,$object->x -
($object->width /
2),$object->y -
($object->height /
2),0,0,$object->width,$object->height);
return 'image'.
$this->type;
* Létrehoz egy képet az $object objektumból a $func függvény segítségével.<br />
* Szükség esetén az $src néven lementi a képet a szerveren
* @param Object $object AObject | Graph
* @param string $func képet létrehozo függvény neve
* @param string $src kép helye mentés esetén
private function createImage($object,$func,$src=
null)
//ha nem gif és nem png képről van szó, akkor a minőséget is be lehet állítani
$func($object->source,$src,$object->quality);
$func($object->source,$src);
* Kép küldése a kimenetre.
$func =
$this->buildImage();
//kimenet típusának beállítása
$this->createImage($this,$func);
* Kép felkínálása letöltésre a kliensen
* @param string $src Letöltés után milyen néven legyen mentve a kép
$func =
$this->buildImage();
//kimenet tipusának beállítása, és letöltésre állítás
$this->createImage($this,$func);
* Kép mentése a szerveren
* @param string $src Mentés helye
$this->createImage($this,$this->buildImage(),$src);
Documentation generated on Tue, 09 Feb 2010 01:17:48 +0100 by phpDocumentor 1.4.1