我知道这个问题已经被反复讨论了很多次,但是我一直在尝试不同的脚本并修改我已有的脚本,但我仍然无法使我的PNG-24 watermark.png透明地覆盖在父级图像上。
这是我目前拥有的:
<?
header('content-type: image/jpeg');
$watermark = imagecreatefrompng('watermark.png');
$watermark_width = imagesx($watermark);
$watermark_height = imagesy($watermark);
$image = imagecreatefromjpeg($imageURL);
$image = imagecreatetruecolor($watermark_width, $watermark_height);
$size = getimagesize($imageURL);
imagealphablending($image, false);
imagesavealpha($image, true);
$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);
?>
我刚刚阅读了另一个Stack Overflow的问题,其中一个答案建议如果您不添加以下两行代码,则不会透明:
imagealphablending($image, false);
imagesavealpha($image, true);
我已经添加了它们,但仍然没有效果。我尝试设置头信息并将输出设为PNG格式,但仍然没有运气。 我在浏览器中加载了水印(原始文件),确实是透明的,但是在图片上不起作用。这肯定不可能那么难吧?有什么想法我做错了什么吗?