all rights reserved. // License //liteStamp::GDversion(); //$stamp = new LiteStamp('originalImage.jpg', 'stampImage.jpg', 'stamp_'); //$stamp->stampPicture(); class LiteStamp{ // class variables private $fileHandle = null; private $newPictureName = null; private $pictureInfo = null; private $pictureName = null; private $prefix = null; private $stampInfo = null; private $stampName = null; private $stampXpos = null; private $stampYpos = null; function __construct($picture, $stamp, $prefix = 'stamp_'){ $this->pictureName = $picture; // original picture to place stamp/watermark on $this->stampName = $stamp; // stamp/watermark picture $this->prefix = $prefix; // prefix of new stamped picture }// end of construct public static function GDversion(){ // GD 2.0.28 or newer is recommended version to use // http://www.php.net/manual/en/function.gd-info.php var_dump(gd_info()); // dump information about your GD version return true; }// end of GDversion private function openImage($fileName, $type){ // open picture with correct image function. Add more types if needed. // GIF: http://php.net/manual/en/function.imagecreatefromgif.php // JPG/JPEG: http://php.net/manual/en/function.imagecreatefromjpeg.php // PNG: http://php.net/manual/en/function.imagecreatefrompng.php switch ($type){ case 1: // GIF $this->fileHandle = imagecreatefromgif($fileName); break;// case 1 case 2: // JPG/JPEG $this->fileHandle = imagecreatefromjpeg($fileName); break;// case 2 case 3: // PNG $this->fileHandle = imagecreatefrompng($fileName); break;// case 3 default: die('Unsupported filetype: '.$fileName); } return $this->fileHandle; }// end of openImage public function stampPicture(){ // get picture info such as width, height and extension // http://php.net/manual/en/function.getimagesize.php $this->pictureInfo = getimagesize($this->pictureName) or die('Error getting picture info. Double check file path.'); $this->stampInfo = getimagesize($this->stampName) or die('Error getting stamp info. Double check file path.'); // open images with class method openImage() $this->pictureFile = $this->openImage($this->pictureName, $this->pictureInfo[2]); $this->stampFile = $this->openImage($this->stampName, $this->stampInfo[2]); // position the stamp in the lower right corner $this->stampXpos = $this->pictureInfo[0] - $this->stampInfo[0] - 15; // width - width - margin $this->stampYpos = $this->pictureInfo[1] - $this->stampInfo[1] - 15; // height - height - margin // set a new name for the stamped picture and keep the original picture intact $this->newPictureName = $this->prefix.$this->pictureName; // alpha blending: http://php.net/manual/en/function.imagealphablending.php imagealphablending($this->pictureFile, true); // merge the two images: http://php.net/manual/en/function.imagecopymerge.php imagecopymerge($this->pictureFile, $this->stampFile, $this->stampXpos, $this->stampYpos, 0, 0, $this->stampInfo[0], $this->stampInfo[1], 100); // output the stamped image as GIF, JPG/JPEG or PNG. Add more types if needed. // default type is the same as the original file // GIF: http://php.net/manual/en/function.imagegif.php // JPG/JPEG: http://php.net/manual/en/function.imagejpeg.php // PNG: http://php.net/manual/en/function.imagepng.php switch ($this->pictureInfo[2]){ case 1: // GIF imagegif($this->pictureFile, $this->newPictureName); break;// case 1 case 2:// JPG/JPEG imagejpeg($this->pictureFile, $this->newPictureName); break;// case 2 case 3: // PNG imagepng($this->pictureFile, $this->newPictureName); break;// case 3 default: die('Unsupported filetype: '.$fileName); } //echo 'finished'; return true; }// end of stampPicture function destruct(){ unset($fileHandle, $newPictureName, $pictureInfo, $pictureName, $prefix, $stampInfo, $stampName, $stampXpos, $stampYpos); }// end of destruct }// end of class ?>