As I stated during the section that you just read, one of the best ways to demonstrate the functionality provided by the previously defined "ImageGenerator" class consists of developing a practical example, where you can see very clearly how it works. Please take a look at the following code sample, which illustrates how to use the class in question, first for displaying on the browser a default input string, and finally for showing another primitive text. Given that, the corresponding code sample looks like this, including first the complete definition of the "ImageGenerator" class that you learned previously: // define 'ImageGenerator' class class ImageGenerator{ private $width; private $height; private $bgColor; private $textColor; private $inputString; private $img; // initialize input arguments public function __construct($inputString='Default Input $this->inputString=$inputString; $this->width=$width; $this->height=$height; $this->bgColor=explode(',',$bgColor); $this->textColor=explode(',',$textColor); $this->buildImageStream(); } // create image stream private function buildImageStream(){ if(!$this->img=imagecreate($this->width,$this->height)){ throw new Exception('Error creating image stream'); } // allocate background color on image stream imagecolorallocate($this->img,$this->bgColor[0],$this->bgColor // allocate text color on image stream $textColor=imagecolorallocate($this->img,$this->textColor if(!imagestring($this->img,5,$this->width/2-strlen($this- throw new Exception('Error creating image text'); } } // display image stream on the browser public function displayImage(){ header("Content-type: image/png"); // display image imagepng($this->img); // free up memory imagedestroy($this->img); } } /* display default input string try{ // create new instance of 'ImageGenerator' class $imgGen=new ImageGenerator(); // display image stream on the browser $imgGen->displayImage(); } catch(Exception $e){ echo $e->getMessage(); exit(); } // display sample input string try{ // create new instance of 'ImageGenerator' class $imgGen=new ImageGenerator('This is a sample string'); // display image stream on the browser $imgGen->displayImage(); } catch(Exception $e){ echo $e->getMessage(); exit(); } As shown above, the image generator class in its current incarnation is quite useful for displaying input strings in the format of image streams. The procedure is reduced to creating an instance of the mentioned class with the input text to be outputted, and then calling its respective "displayImage()" method. In addition, below I included two screen shots, which demonstrate the outputs generated by the previous code samples:
Of course, the functionality of the class analyzed in an isolated context is rather limited. However, it can be quite useful when utilized in conjunction with other applications, for instance, to build noise images. Now, things are getting slightly more interesting, right? For the moment, I suggest that you test the source code of this image generator class by using several input texts, to see how it works in each particular case. Final thoughts That's all for now. Hopefully, after reading this article, you'll have a much better idea of how to build a PHP 5-based class that displays an input string in a predefined graphic format. Nonetheless, the class in its current version has some important limitations, since it doesn't perform an appropriate validation on all of its input arguments. Therefore, considering this relevant issue, in the next part of the series I'll fix this issue, thus improving the overall structure of the class. Now that you know what the next article will be about, you won't want to miss it!
blog comments powered by Disqus |
|
|
|
|
|
|
|