| 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: 15 let
|
|||
0