watermarking not working with png24

PHP programming forum. Ask questions or help people concerning PHP code. Don't understand a function? Need help implementing a class? Don't understand a class? Here is where to ask. Remember to do your homework!

Moderator: General Moderators

Post Reply
User avatar
paqman
Forum Contributor
Posts: 125
Joined: Sun Nov 14, 2004 7:41 pm
Location: Burnaby, BC, Canada

watermarking not working with png24

Post 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?
User avatar
onion2k
Jedi Mod
Posts: 5263
Joined: Tue Dec 21, 2004 5:03 pm
Location: usrlab.com

Re: watermarking not working with png24

Post by onion2k »

Use imagecopy() instead of imagecopymerge().
User avatar
paqman
Forum Contributor
Posts: 125
Joined: Sun Nov 14, 2004 7:41 pm
Location: Burnaby, BC, Canada

Re: watermarking not working with png24

Post by paqman »

Thank you so much. Worked like a charm.
Post Reply