PHP-将透明PNG动态添加到GIF

PHP-将透明PNG动态添加到GIF,php,watermark,php-gd,Php,Watermark,Php Gd,我正在尝试用php代码做一个水印标记,在我将一个透明的PNG文件转换成GIF之前,一切似乎都很正常。发生的情况如下: 因此,我在顶部得到的不是透明的黑色水印,而是半固态的绿色。 水印是 我使用以下php代码: ... $image = imagecreatefromgif($filepath);; $watermark_image = imagecreatefrompng($wm_filepath); imagealphablending($watermark

我正在尝试用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、 我必须提到的是,我尝试使用

    imagealphablending()
    imagesavealpha() 
没有结果

UPD


现在我将图像保存为png文件。我删除了这两行
imagealphablending($watermark\u image,false);imagesavealpha($watermark_image,true)成功了。但是,PNG的透明度与GIF重叠<代码>图像混合($image,true)没有帮助。我该怎么办?

GIF文件的颜色限制为256种,并且有一种指定为透明的颜色。所以你不能有抗锯齿透明度,也不能有任何类型的抗锯齿


我建议改为保存为PNG。

谢谢您的回答。我试图通过使用
imagepng($image,$filepath)保存为PNG,但我有相同的结果,除了水印的背景现在根本不是“透明”的。。。