Re: Creating watermarks

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



GP INTERACTIVE wrote:
you can use also the following function :

<?php

  // --- image play path
  $watermarkfile = 'images/play_small.png'; // as an example
function getPictureMarked($sourcefile, $watermarkfile) { #
    # $sourcefile = Filename of the picture to be watermarked.
    # $watermarkfile = Filename of the 24-bit PNG watermark file.
    #
//Get the resource ids of the pictures
    $watermarkfile_id = imagecreatefrompng($watermarkfi
le);
imageAlphaBlending($watermarkfile_id, false);
    imageSaveAlpha($watermarkfile_id, true);

    $fileType = strtolower(substr($sourcefile, strlen($sourcefile)-3));

    switch($fileType) {
        case('gif'):
            $sourcefile_id = imagecreatefromgif($sourcefile);
            break;
case('png'):
            $sourcefile_id = imagecreatefrompng($sourcefile);
            break;
default:
            $sourcefile_id = imagecreatefromjpeg($sourcefile);
    }

//Get the sizes of both pix $sourcefile_width=imageSX($sourcefile_id);
    $sourcefile_height=imageSY($sourcefile_id);
    $watermarkfile_width=imageSX($watermarkfile_id);
    $watermarkfile_height=imageSY($watermarkfile_id);

    $dest_x = ( $sourcefile_width / 2 ) - ( $watermarkfile_width / 2 );
    $dest_y = ( $sourcefile_height / 2 ) - ( $watermarkfile_height / 2 );
// if a gif, we have to upsample it to a truecolor image
    if($fileType == 'gif') {
        // create an empty truecolor container
$tempimage = imagecreatetruecolor($sourcefile_width, $sourcefile_height); // copy the 8-bit gif into the truecolor image imagecopy($tempimage, $sourcefile_id, 0, 0, 0, 0, $sourcefile_width, $sourcefile_height); // copy the source_id int
        $sourcefile_id = $tempimage;
    }

imagecopy($sourcefile_id, $watermarkfile_id, $dest_x, $dest_y, 0, 0, $watermarkfile_width, $watermarkfile_height);

    //Create a jpeg out of the modified picture
    switch($fileType) {
// remember we don't need gif any more, so we use only png or jpeg. // See the upsaple code immediately above to see how we handle gifs
        case('png'):
            header("Content-type: image/png");
            imagepng ($sourcefile_id);
            break;
default:
            header("Content-type: image/jpg");
            imagejpeg ($sourcefile_id);
} imagedestroy($sourcefile_id);
    imagedestroy($watermarkfile_id);
}
?>

Regards,

Greg
http://www.psmdev.com <http://www.psmdev.com/>



On 8/4/07, *Tom Ray [Lists]* < lists@xxxxxxxxxxxxxxxx <mailto:lists@xxxxxxxxxxxxxxxx>> wrote:

    I've been learning how to use PHP with the GD Library and I've
    managed
    to learn quite a bit. I can upload, resize, create thumbnails and I'm
    even able to create "security code" images for forms. My question
    is how
    do I create a Watermark on the image? I want something transparent
    but
    still visible enough to see the copyright and the website. I want
    to put
    it in the center of the image. I would use a non-water marked
    image and
    when it's called on (depending on viewing size) I want the water
    mark to
    be added.

    How would one go about doing that?

    --
    PHP General Mailing List (http://www.php.net/)
    To unsubscribe, visit: http://www.php.net/unsub.php
    <http://www.php.net/unsub.php>


I'll test this tonight...thanks!

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux