I need to add transparent watermark (transparency in final image - 80%). I created this function to handle it:
function ImageAddWatermark($im, $stamp, $onLeft, $onTop, $margin){
// $stamp = imagecreatformpng(...) -> GD resource?
// not important part - it calculates position of watermark
if($onLeft){
$orgX = $margin;
} else {
$orgX = imagesx($im)-$margin-imagesx($stamp);
}
if($onTop){
$orgY = $margin;
}else {
$orgY = imagesy($im)-$margin-imagesy($stamp);
}
imagecopymerge($im, $stamp, $orgX, $orgY, 0, 0, imagesx($stamp), imagesy($stamp), 50);
return $im;
}
Result of function:
But imagecopymerge returns black background instead of transparent. I even heard some opinions, that imagecopymerge isn't exactly the right thing for creating transparent watermarks...
So the question is: "How can I add a transparent watermark (using alpha?) in jpeg photo?" How can I get rid of that black backgound? (In original PNG file is transparent)