<?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;
 
    }
 
}
 
?>
 
 |