Page 1 of 1

Help with fusion of image resize and watermark

Posted: Thu Mar 04, 2010 4:58 pm
by olidenia
I have two scripts i would like to fuse:

I have an image url that calls a script to resize it:

<img class=\"flt\" src=\"img.php?w=75&h=75&constrain=1&img={$img['url']}\" title=\"Test\" >

and it calls this cript:

Code: Select all

<?php
header ("Content-type: image/jpeg");
/*
JPEG / PNG Image Resizer
Parameters (passed via URL):
 
img = path / url of jpeg or png image file
 
percent = if this is defined, image is resized by it's
          value in percent (i.e. 50 to divide by 50 percent)
 
w = image width
 
h = image height
 
constrain = if this is parameter is passed and w and h are set
            to a size value then the size of the resulting image
            is constrained by whichever dimension is smaller
 
Requires the PHP GD Extension
 
Outputs the resulting image in JPEG Format
 
By: Michael John G. Lopez - http://www.sydel.net
Filename : imgsize.php
*/
 
$img = $_GET['img'];
$percent = $_GET['percent'];
$constrain = $_GET['constrain'];
$w = $_GET['w'];
$h = $_GET['h'];
 
// get image size of img
$x = @getimagesize($img);
// image width
$sw = $x[0];
// image height
$sh = $x[1];
 
if ($percent > 0) {
    // calculate resized height and width if percent is defined
    $percent = $percent * 0.01;
    $w = $sw * $percent;
    $h = $sh * $percent;
} else {
    if (isset ($w) AND !isset ($h)) {
        // autocompute height if only width is set
        $h = (100 / ($sw / $w)) * .01;
        $h = @round ($sh * $h);
    } elseif (isset ($h) AND !isset ($w)) {
        // autocompute width if only height is set
        $w = (100 / ($sh / $h)) * .01;
        $w = @round ($sw * $w);
    } elseif (isset ($h) AND isset ($w) AND isset ($constrain)) {
        // get the smaller resulting image dimension if both height
        // and width are set and $constrain is also set
        $hx = (100 / ($sw / $w)) * .01;
        $hx = @round ($sh * $hx);
 
        $wx = (100 / ($sh / $h)) * .01;
        $wx = @round ($sw * $wx);
 
        if ($hx < $h) {
            $h = (100 / ($sw / $w)) * .01;
            $h = @round ($sh * $h);
        } else {
            $w = (100 / ($sh / $h)) * .01;
            $w = @round ($sw * $w);
        }
    }
}
 
$im = @ImageCreateFromJPEG ($img) or // Read JPEG Image
$im = @ImageCreateFromPNG ($img) or // or PNG Image
$im = @ImageCreateFromGIF ($img) or // or GIF Image
$im = false; // If image is not JPEG, PNG, or GIF
 
if (!$im) {
    // We get errors from PHP's ImageCreate functions...
    // So let's echo back the contents of the actual image.
    readfile ($img);
} else {
    // Create the resized image destination
    $thumb = @ImageCreateTrueColor ($w, $h);
    // Copy from image source, resize it, and paste to image destination
    @ImageCopyResampled ($thumb, $im, 0, 0, 0, 0, $w, $h, $sw, $sh);
    // Output resized image
    @ImageJPEG ($thumb);
}
?>
 
I have another url:

<img style=\"max-width:500px;\" class=\"flt\" src=\"image.php?main=$sw&watermark=watermark.png\" title=\"Test\">

That calls this script:

Code: Select all

<?php
 
    # include our watermerking class
    include 'api.watermark.php';
    $watermark          = new watermark();
 
    # create image objects using our user-specified images
    # NOTE: we're just going to assume we're dealing with a JPG and a PNG here - for example purposes
    $main_img_obj               = imagecreatefromjpeg(  $_GET['main']           );
    $watermark_img_obj  = imagecreatefrompng(   $_GET['watermark']  );
 
    # create our watermarked image - set 66% alpha transparency for our watermark
    $return_img_obj         = $watermark->create_watermark( $main_img_obj, $watermark_img_obj, 66 );
 
    # display our watermarked image - first telling the browser that it's a JPEG, 
    # and that it should be displayed inline
    header( 'Content-Type: image/jpeg' );
    header( 'Content-Disposition: inline; filename=' . $_GET['src'] );
    imagejpeg( $return_img_obj, '', 50 );
 
?>

At the moment I'm only using the second script for watermarking with style=\"max-width:500px;\" but, on large dimension images the watermark is tiny and the images take a long time to load, what I want to do is fuse the both scripts, but just don't know where to start, any help is most appreciated. Thanks

Re: Help with fusion of image resize and watermark

Posted: Fri Mar 05, 2010 1:55 am
by olidenia
Any one? No ideas at all?

Re: Help with fusion of image resize and watermark

Posted: Fri Mar 05, 2010 5:29 pm
by archonis
I am also looking for the same thing. Any help?

Re: Help with fusion of image resize and watermark

Posted: Fri Mar 05, 2010 5:42 pm
by pickle
[url=http://forums.devnetwork.net/viewtopic.php?t=30037]Forum Rules[/url] Section 1.1 wrote:4. All users of any level are restricted to bumping (as defined here) any given thread within twenty-four (24) hours of its last post. Non-trivial posts are not considered bumping. A bump post found in violation will be deleted, and you may or may not receive a warning. Persons bumping excessively be considered as spammers and dealt with accordingly.