Page 1 of 1

watermarking not working with png24

Posted: Fri Mar 14, 2008 7:00 pm
by paqman
I'm trying to implement code to automatically watermark images when they're uploaded on a website using the following code:

Code: Select all

$watermark = imagecreatefrompng('watermark.png');  
$watermark_width = imagesx($watermark);  
$watermark_height = imagesy($watermark);  
$image = imagecreatetruecolor($watermark_width, $watermark_height);  
$image = imagecreatefromjpeg($_GET['src']);  
$size = getimagesize($_GET['src']);  
$dest_x = $size[0] - $watermark_width - 5;  
$dest_y = $size[1] - $watermark_height - 5;  
imagecopymerge($image, $watermark, $dest_x, $dest_y, 0, 0, $watermark_width, $watermark_height, 100);  
imagejpeg($image);  
imagedestroy($image);  
imagedestroy($watermark);
It works fine with png8 files, but when I want a semi-transparent image (using a png24) the entire png image turns solid white: http://fridasaltiel.com/photo/large/ddd ... 2c3b84.jpg.

I've been looking about work-arounds but have been unsuccessful so far. Any suggestions?

Re: watermarking not working with png24

Posted: Sat Mar 15, 2008 6:25 am
by onion2k
Use imagecopy() instead of imagecopymerge().

Re: watermarking not working with png24

Posted: Sat Mar 15, 2008 2:11 pm
by paqman
Thank you so much. Worked like a charm.