All pastes #1646370 Raw Edit

Watermarking

public text v1 · immutable
#1646370 ·published 2009-10-28 12:04 UTC
rendered paste body
//this is simple code to watermark and resize images making thumbnails.
//comes from http://hatemyblog.wordpress.com/2009/09/08/php-watermark-and-resize-image/
                
                $srcimg = "thebigphoto.jpg";    //the source file
                $tmimg = "sm_".$srcimg;   //were to place the thumb
                $wmimg = "watermark.pbr";              //the watermark files
                $target  = 150;     //thumbnail target size
                $waterlevel = 40;                            //the level of opacity
                
                //load the jpeg and get its sizes
                $image = imagecreatefromjpeg($srcimg);  
                $size = getimagesize($srcimg);  
                
                //this if just figures out what side is dominant
                if ($size[0] > $size[1]) {
                        $percentage = ($target / $size[0]);
                } else {
                        $percentage = ($target / $size[1]);
                }
                //calc the thumb sizes
                $newwidth = round($size[0] * $percentage);
                $newheight = round($size[1] * $percentage); 
                
                //make a new img | copy the smaller | save as jpeg | clean up
                $thumb = imagecreatetruecolor($newwidth, $newheight);      
                imagecopyresized($thumb, $image, 0, 0, 0, 0, $newwidth, $newheight, $size[0], $size[1]);                
                imagejpeg($thumb,$tmimg);
                imagedestroy($thumb);
                
                //make watermage img | and get its sizes;
                $watermark = imagecreatefrompng($wmimg);  
                $watermark_width = imagesx($watermark);  
                $watermark_height = imagesy($watermark);  
 
                this will place it Bottom-Left, 5px from the border
                $dest_x = $size[0] - $watermark_width - 5;  
                $dest_y = $size[1] - $watermark_height - 5;  
                
                //copy it over | save it over the original | and clean up
                imagecopymerge($image, $watermark, $dest_x, $dest_y, 0, 0, $watermark_width, $watermark_height, $waterlevel);  
                imagejpeg($image,$srcimg );     
                imagedestroy($watermark);              
                imagedestroy($image);
 
?>