<?php
 
/* PIMG module: merges two pimg images with a define xy offset */
 
class pimg_merge
 
{
 
    /* Resources */
 
    private $pimg;
 
    
 
    // PIMG constructor
 
    function __construct($pimg)
 
    {
 
        $this -> pimg = $pimg;
 
    }
 
    
 
    
 
    
 
    /*
 
        Merges the given pimg image over the original pimg image with the given xy offset
 
        @param: $copy - the pimg image to merge on top
 
        @param: $x - x offset (signed)
 
        @param: $y - y offset (signed)
 
        @result: a pointer to the caller pimg class for furthur usage
 
    */
 
    function init($copy, $x = 0, $y = 0, $pct = 100)
 
    {
 
        /* INPUT VALIDATORS */
 
        if (!$copy instanceOf pimg_image)
 
            $this -> pimg -> setDebug('The passed merge image is not a valid pimg_image resource', 'error', __CLASS__);
 
        
 
        // Check if the $copy is actually the original pimg
 
        if ($this -> pimg == $copy)
 
            $copyImg = $this -> pimg -> newImage($copy -> renderString());
 
        else
 
            $copyImg = $copy -> handle();
 
        
 
        // Layer over the image
 
        if ($pct == 100)
 
            imagecopyresampled($this -> pimg -> handle(), $copyImg, $x, $y, 0, 0, $copy -> width(), $copy -> height(), $copy -> width(), $copy -> height());
 
        elseif ($pct)
 
            imagecopymerge($this -> pimg -> handle(), $copyImg, $x, $y, 0, 0, imagesx($copyImg), imagesy($copyImg), $pct);
 
        
 
        // Return the caller pimg instance
 
        return $this -> pimg;
 
    }
 
}
 
?>
 
 |