SitePoint Sponsor

User Tag List

Results 1 to 3 of 3
  1. #1
    SitePoint Member
    Join Date
    Dec 2006
    Posts
    2
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Unhappy watermark png no resize

    hi
    i was wondering if anyone can help me out with this watermark script my problem is that the png image is resizing with all my images i have to watermark in the folder here is 2 link so you can see what im talking about im trying to get it so it will stay one size and not strech thanks....

    link 1:
    http://www.singlespleasures.com/memb...&member_id=280

    link 2:
    http://www.singlespleasures.com/memb...le&member_id=3

    php code:
    <?


    // IMAGE WATERMARK (comment line below if you do not want to use image watermark)
    Define('WATERMARK_IMAGE', './wt.png'); // path to watermark image
    Define('WATERMARK_PERCENT', '100'); // Intensity of the transition (in percent)


    // TEXT WATERMARK (comment line below if you do not want to use text)
    //Define('WATERMARK_TEXT', 'SinglesPleasures.com'); // text to place (image will not be used)
    //Define('WATERMARK_TEXT_FONT', '4'); // font 1 / 2 / 3 / 4 / 5
    // Define('TEXT_SHADOW', '0'); // 1 - yes / 0 - no
    //Define('TEXT_COLOR', '#FFFFFF'); // text color


    // GENERAL SETTINGS
    Define('WATERMARK_ALIGN_H', 'right'); // left / right / center
    Define('WATERMARK_ALIGN_V', 'bottom'); // top / bottom / center
    Define('WATERMARK_MARGIN', '0'); // margin

    // ----------------------------------------------------------------------------------------

    $dr=preg_replace('/modify\.php.+/', '', $_SERVER['PHP_SELF']);
    $filename=str_replace($dr, './', $_SERVER['PATH_INFO']);

    $lst=GetImageSize($filename);
    $image_width=$lst[0];
    $image_height=$lst[1];
    $image_format=$lst[2];

    if ($image_format==1) {
    Header("Content-Type:image/gif");
    readfile($filename);
    exit;
    } elseif ($image_format==2) {
    $old_image=imagecreatefromjpeg($filename);
    } elseif ($image_format==3) {
    $old_image=imagecreatefrompng($filename);
    } else {
    readfile($filename);
    exit;
    }


    if (Defined('WATERMARK_TEXT') && WATERMARK_TEXT!='' && ($image_height>192 || $image_width>192)) {
    // text


    $color = eregi_replace("#","", TEXT_COLOR);
    $red = hexdec(substr($color,0,2));
    $green = hexdec(substr($color,2,2));
    $blue = hexdec(substr($color,4,2));

    $text_color = imagecolorallocate ($old_image, $red, $green, $blue);

    $text_height=imagefontheight(WATERMARK_TEXT_FONT);
    $text_width=strlen(WATERMARK_TEXT)*imagefontwidth(WATERMARK_TEXT_FONT);
    $wt_y=WATERMARK_MARGIN;
    if (WATERMARK_ALIGN_V=='top') {
    $wt_y=WATERMARK_MARGIN;
    } elseif (WATERMARK_ALIGN_V=='bottom') {
    $wt_y=$image_height-$text_height-WATERMARK_MARGIN;
    } elseif (WATERMARK_ALIGN_V=='center') {
    $wt_y=(int)($image_height/2-$text_height/2);
    }

    $wt_x=WATERMARK_MARGIN;
    if (WATERMARK_ALIGN_H=='left') {
    $wt_x=WATERMARK_MARGIN;
    } elseif (WATERMARK_ALIGN_H=='right') {
    $wt_x=$image_width-$text_width-WATERMARK_MARGIN;
    } elseif (WATERMARK_ALIGN_H=='center') {
    $wt_x=(int)($image_width/2-$text_width/2);
    }

    if (TEXT_SHADOW=='1') {
    imagestring($old_image, WATERMARK_TEXT_FONT, $wt_x+1, $wt_y+1, WATERMARK_TEXT, 0);
    }
    imagestring($old_image, WATERMARK_TEXT_FONT, $wt_x, $wt_y, WATERMARK_TEXT, $text_color);

    }
    if (Defined('WATERMARK_IMAGE') && WATERMARK_IMAGE!='' && ($image_height>192 || $image_width>192)) {

    // image


    $lst2=GetImageSize(WATERMARK_IMAGE);
    $image2_width=$lst2[0];
    $image2_height=$lst2[1];
    $image2_format=$lst2[2];

    if ($image2_format==2) {
    $wt_image=imagecreatefromjpeg(WATERMARK_IMAGE);
    } elseif ($image2_format==3) {
    $wt_image=imagecreatefrompng(WATERMARK_IMAGE);
    }

    if ($wt_image) {

    $wt_y=WATERMARK_MARGIN;
    if (WATERMARK_ALIGN_V=='top') {
    $wt_y=WATERMARK_MARGIN;
    } elseif (WATERMARK_ALIGN_V=='bottom') {
    $wt_y=$image_height-$image2_height-WATERMARK_MARGIN;
    } elseif (WATERMARK_ALIGN_V=='center') {
    $wt_y=(int)($image_height/2-$image2_height/2);
    }

    $wt_x=WATERMARK_MARGIN;
    if (WATERMARK_ALIGN_H=='left') {
    $wt_x=WATERMARK_MARGIN;
    } elseif (WATERMARK_ALIGN_H=='right') {
    $wt_x=$image_width-$image2_width-WATERMARK_MARGIN;
    } elseif (WATERMARK_ALIGN_H=='center') {
    $wt_x=(int)($image_width/2-$image2_width/2);
    }

    imagecopymerge($old_image, $wt_image, $wt_x, $wt_y, 0, 0, $image2_width, $image2_height, WATERMARK_PERCENT);
    }

    }

    if ($image_format==2) {
    imageJpeg($old_image);
    }
    if ($image_format==3) {
    imagePng($old_image);
    }


    ?>
    Last edited by ycpc55; Dec 26, 2006 at 16:15. Reason: forgot code sorry

  2. #2
    SitePoint Member
    Join Date
    Dec 2006
    Posts
    2
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    anyone no how this can be done?

  3. #3
    SitePoint Enthusiast
    Join Date
    Sep 2005
    Posts
    48
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Quote Originally Posted by ycpc55 View Post
    anyone no how this can be done?
    I am not sure if you already solved your watermarking issue, but for you and all other devs like you looking for a way to apply watermarks on the fly, you might want to check the open-source project Asido: there are a lot of useful features when creating applying watermarks, like tile watermarks or watermark scaling. There's no problem at all using transparent images both as watermarks or as images that are about to be watermarked. Check the rest of the watermarkng examples here: http://www.asido.info/category/howto/watermark/

    Anyway, I think what you need is watermark scaling: this mean that if the image is bigger than the image that is being watermarked, then it is resized to fit in. Asido supports that, and you can see this feature at the following exmaples: Watermark Scaling and Watermark Scaling w/ Scaling Factor


Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •