| 
<?php
/* PIMG module: represents a single pixel from the image */
 class pimg_pixel
 {
 /* Resources */
 private $pimg;
 private $x;
 private $y;
 private $color;
 
 // PIMG constructor
 function __construct($pimg)
 {
 $this -> pimg = $pimg;
 }
 
 
 
 /*
 Sets pixel properties
 @param: $x - the x position in the image
 @param: $y - the y position in the image
 @param: $color - a valid pimg_color resource
 */
 function init($x, $y, $color)
 {
 /* INPUT VALIDATORS */
 if ($x < 0)
 {
 $x = 0;
 $this -> pimg -> setDebug('X position must be >= 0, using 0 as default', 'notice', __CLASS__);
 }
 if ($y < 0)
 {
 $y = 0;
 $this -> pimg -> setDebug('Y position must be >= 0, using 0 as default', 'notice', __CLASS__);
 }
 if (!$color instanceOf pimg_color)
 $this -> pimg -> setDebug('Passed color is not a valid pimg_color instance', 'error', __CLASS__);
 
 
 // Set pixel properties
 $this -> x        = $x;
 $this -> y        = $y;
 $this -> color    = $color;
 
 // Return an instance of the class
 return $this;
 }
 
 
 
 /*
 If the user wants to view the pixel info for debugging this method will return a string representation of it
 @result: string info
 */
 function __toString()
 {
 return 'x: ' . $this -> x . ', y: ' . $this -> y . ', color: [ ' . $this -> color . ' ]';
 }
 
 
 
 /*
 Sets or gets the x value
 @param: $x
 @result: hande of the class or x value
 */
 public function x($x = null)
 {
 if (isset($x))
 {
 $this -> x = $x;
 return $this;
 }
 else
 return $this -> x;
 }
 
 
 
 /*
 Sets or gets the y value
 @param: $y
 @result: hande of the class or y value
 */
 public function y($y = null)
 {
 if (isset($y))
 {
 $this -> y = $y;
 return $this;
 }
 else
 return $this -> y;
 }
 
 
 
 /*
 Sets or gets the color value
 @param: $color
 @result: hande of the class or hande of pimg_color representing pixel's color
 */
 public function color($color = null)
 {
 if (isset($color))
 {
 $this -> color = $color;
 return $this;
 }
 else
 return $this -> color;
 }
 
 
 
 /*
 Draws the pixel to the parent pimg image or the given pimg image
 @result: handle of the pimg class
 */
 public function draw($pimg = null)
 {
 // Draw the pixel
 $pimg = (empty($pimg)) ? $this -> pimg : $pimg;
 imagesetpixel($pimg -> handle(), $this -> x, $this -> y, $this -> color -> allocate());
 
 // Return handle of the class
 return $pimg;
 }
 }
 ?>
 |