我正在尝试用PHP代码做一个水印标记,一切似乎都运行正常,直到我把一个透明的PNG文件放到GIF上。这会发生什么:
因此,我没有透明的黑色水印,而是将这个半绿色的东西放在顶部。 水印是
我使用以下php代码:
...
$image = imagecreatefromgif($filepath);;
$watermark_image = imagecreatefrompng($wm_filepath);
imagealphablending($watermark_image, false);
imagesavealpha($watermark_image, true);
imagegif($image, $filepath);
imagedestroy($image);
imagecopy($image, $watermark_image, $offset['x'], $offset['y'], 0, 0, imagesx($watermark_image), imagesy($watermark_image) );
P.S。我必须提到我尝试使用
组合不同的设置 imagealphablending()
imagesavealpha()
并且没有结果
UPD :
现在我将图像保存为png文件。我删除了这两行imagealphablending($watermark_image, false); imagesavealpha($watermark_image, true);
并且它有效。但是,PNG的透明度与GIF重叠。 imagealphablending($image, true);
没有帮助。我该怎么办?
答案 0 :(得分:0)
GIF文件限制为256种颜色,并且单一颜色指定为透明。所以你不能有抗锯齿的透明度,也不能有任何类型的抗锯齿。
我建议改为以PNG格式保存。