Problem sam resio. Dakle iskoristio sam Imagick klasu i uptrebio colorFloodfillImage() funkciju itd. Dakle to je reseno i cim odbranim seminarski okacicu ovo ovde posto je bilo vise pitanja na ovu temu a i uopste ima dosta postova kojekuda na tu temu ali resenje ne nadjoh nigde :) A posebno mi je drago sto sam to uradio u php, iako je preporuceno pomocu C++ ili C#.
Elem, kao sto rekoh resio sam problem ali nisam to uradio na elegantan nacin. Sad zelim da kreiram wrapper klasu za Imagick klasu, s tim sto cu samo deo funkcionalnosti klase da podrzim pomocu moje klase. Medjutim kod mi ne radi. Nemam nikakvu kontrolu nad objektom nakon sto izadjem iz konstruktora. Evo jednostavan primer koji bi trebalo da radi a ne radi.
Code:
<?php
header('Content-Type: png');
class Slika
{
public function __construct()
{
$slika = new imagick('fig2.jpg');
$slika->setImageFormat( "png" );
//echo $slika;
}
public function __destruct(){ unset($slika); }
public function getSlika(){return $slika;}
public function echoSlika(){echo $slika;}
private $slika;
}
$sl=new Slika;
$sl->echoSlika();
//echo $sl->getSlika();
$sl->__destruct();
//$im = new imagick( 'fig2.jpg' );
//$im->setImageFormat( "png" );
//echo $im;
?>
<?php
header('Content-Type: png');
class Slika
{
public function __construct()
{
$slika = new imagick('fig2.jpg');
$slika->setImageFormat( "png" );
//echo $slika;
}
public function __destruct(){ unset($slika); }
public function getSlika(){return $slika;}
public function echoSlika(){echo $slika;}
private $slika;
}
$sl=new Slika;
$sl->echoSlika();
//echo $sl->getSlika();
$sl->__destruct();
//$im = new imagick( 'fig2.jpg' );
//$im->setImageFormat( "png" );
//echo $im;
?>
Dakle ovako: ukoliko uklonim prvi komentar koji se nalazi u konstruktoru, prikaze se slika pri izvrsenju. Ukoliko uklonim poslednja 3 komentara i kreiram Imagick objekat direkno u telu programa sve radi perfektno. Medjutim ako pokusam da kreiram moju objekat Slika i pokusam da izvrsim echo slike pomocu echoSlika() ili getSlika() ne dobijem nista kad izvrsim stranu. Uopste ne kapiram gde gresim. Moze li mi neko pomoci?