• home
  • forum
  • my
  • kt
  • download
  • Water mark images using PHP 5 and GD Library

    Author: 2008-08-23 14:07:14 From:

    All you have to do is just copy and paste the code below on to a file name in your localhost.

    Take two images any of .JPG OR .PNG OR .GIF

    Here for orginal image i have given the name as originalImage.jpg

    For  water mark image i have given the name as watermark.jpg

    So all you have to do is create a PHP file of your desired name then bring two images namely originalImage.jpg and watermark.jpg on to the same directory where the PHP file is created.

    Note:-Your GD library must be enabled

                                                     DONT EDIT ANYTHING BELOW IF YOU ARE NOT FAMILIAR WITH PHP

    <?php

    balu::GDversion();
    $stamp = new balu('originalImage.jpg', 'watermark.jpg', 'balututorialz.tk_');
    $stamp->stampPicture();

    class balu{

            // 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 = 'balututorialz.tk_'){

                    $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);

                }

            return true;
            }// end of stampPicture



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



    }// end of class
    //tutorialz.tk
    ?>

    discuss this topic to forum

    relation tutorial

    No relevant information

    Category

      Ad Management (4)
      Calendars (3)
      Chat Systems (7)
      Content Management (6)
      Cookies and Sessions (8)
      Counters (8)
      Database Related (8)
      Date and Time (9)
      Development (6)
      Discussion Boards (7)
      E Commerce (6)
      Email Systems (9)
      Error Handling (5)
      File Manipulation (10)
      Flash and PHP (4)
      Form Processing (7)
      Guestbooks (8)
      Image Manipulation (4)
      Installing PHP (7)
      Introduction to PHP (24)
      Link Indexing (8)
      Mailing List Management (9)
      Miscellaneous (54)
      Networking (8)
      News Publishing (9)
      OOP (24)
      PEAR (6)
      PHP vs Other Languages (2)
      Polls and Voting (6)
      Postcards (1)
      Randomizing (14)
      Redirection (11)
      Searching (9)
      Security (29)
      Site Navigation (16)
      User Authentication (14)
      WAP and WML (7)
      Web Fetching (8)
      Web Traffic Analysis (15)
      XML and PHP (16)

    New

    Hot