Transparentes Watermark auf Bild

Das liegt an dem imagecopymerge.
Ersetzt man das ganze durch imagecopyresized klappt es wunderbar:
PHP:
<?php
// NOTE: class is experimental
// Copyright (c) 2006, Simon Jansson <http://www.litewebsite.com> all rights reserved.
// License <http://litewebsite.com/license_BSD.html>

//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
                imagecopyresized($this->pictureFile, $this->stampFile, $this->stampXpos, $this->stampYpos, 0, 0, $this->stampInfo[0], $this->stampInfo[1],$this->stampInfo[0], $this->stampInfo[1]);
                // 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);
                        echo "HALOHOAL";
                        break;// case 2

                case 3: // PNG
                        imagepng($this->pictureFile, $this->newPictureName);
                        break;// case 3

                default:
                        die('Unsupported filetype: '.$fileName);

            }

        return true;
        }// end of stampPicture



        function destruct(){
                unset($fileHandle, $newPictureName, $pictureInfo, $pictureName, $prefix, $stampInfo, $stampName, $stampXpos, $stampYpos);
        }// end of destruct



}// end of class
?>
 
Zurück