| 
<?php
/* PIMG module: replaces the original image with a cropped rectangle */
 class pimg_crop
 {
 /* Resources */
 private $pimg;
 
 // PIMG constructor
 function __construct($pimg)
 {
 $this -> pimg = $pimg;
 }
 
 
 
 /*
 Replaces the original image with a cropped rectangle specified by it's start point's X & Y and width, and height
 @param: $x - x of start point
 @param: $y - y of start point
 @param: $width - width of rectangle
 @param: $height - height of rectangle
 @result: a pointer to the caller pimg class for furthur usage
 */
 function init($x, $y, $width, $height)
 {
 /* INPUT VALIDATORS */
 if ($x < 0)
 {
 $x = 0;
 $this -> pimg -> setDebug('X start point must be >= 0', 'notice', __CLASS__);
 }
 if ($y < 0)
 {
 $y = 0;
 $this -> pimg -> setDebug('Y start point must be >= 0', 'notice', __CLASS__);
 }
 if ($width <= 0)
 $this -> pimg -> setDebug('Crop width must be > 0', 'error', __CLASS__);
 if ($height <= 0)
 $this -> pimg -> setDebug('Crop height must be > 0', 'error', __CLASS__);
 
 // New empty image
 $crop = $this -> pimg -> newImage(null, $width, $height);
 
 // Crop the area
 imagecopy($crop, $this -> pimg -> handle(), 0, 0, $x, $y, $width, $height);
 
 // Update the image
 $this -> pimg -> update($crop, $width, $height);
 
 // Return the caller pimg instance
 return $this -> pimg;
 }
 }
 ?>
 |