Autor | Zpráva | ||
---|---|---|---|
nethor Profil |
#1 · Zasláno: 4. 2. 2012, 23:27:58
Zdravím, pokouším se generovat obrázek - graf pomocí imagick().
Samotné generování obrázku funguje, ale nedaří se mi to nacpat do třídy. S OOP teprve začínám. Myšlenka je taková: 1) pomocí __construct založit nový obrázek 2) pomocí sloupec() vykreslit do něj několik sloupců 3) pomocí __destruct() vykreslit výsledek class graph { public $width,$height,$bg_color,$sloupec,$canvas; public function __construct($width = 800, $height = 600 , $bg_color = "#fff") { $canvas = new Imagick(); // nový obrázek (pozadí) $canvas->newImage($width, $height, new ImagickPixel($bg_color)); // vytvoření obrazku } public function sloupec($vyska, $pozice) { $sloupec->pozice['x'] = 200; $sloupec->pozice['y'] = 40; $sloupec->rozmer['x'] = 40; //šířka sloupce $sloupec->rozmer['y'] = 500; //výška sloupce $sloupec->barva = "#66f"; $draw = new ImagickDraw(); // start vektorové grafiky $draw->setFillColor( new ImagickPixel( $sloupec->barva ) ); $draw->rectangle ( $sloupec->pozice['x'] , $sloupec->pozice['y'] , $sloupec->pozice['x']+$sloupec->rozmer['x'] - 1 , $sloupec->pozice['y']+$sloupec->rozmer['y'] ); $canvas->drawImage( $draw ); } public function __destruct() { $canvas->flipImage(); // překlopení obrázku $canvas->setImageFormat("png"); // formát výsledného obrázku header("Content-Type: image/png"); echo $canvas; } } $graph = new graph(); $graph->sloupec(500,200); $graph->sloupec(300,300); Hází mi to Fatal error: Call to a member function drawImage() on a non-object. Problém je asi s pšenesením prom. $canvas , nevím jak nastavit , aby si uchovala hodnotu i ve fci sloupec(). ... nebo co je tam špatně? |
||
Keeehi Profil |
#2 · Zasláno: 4. 2. 2012, 23:31:39
Asi
$this->canvas->drawImage() |
||
nethor Profil |
#3 · Zasláno: 5. 2. 2012, 00:01:32
Jo funguje, díky.
V celé třídě jsem nahradil $canvas za $this->canvas (kromě deklarace). |
||
Časová prodleva: 12 let
|
0