我正在关注PHP文档中的示例,“使用Alpha通道向图像添加水印”,但我的目标图像是透明的PNG文件,而我的图章图像是GIF图像。我遇到的问题是我的印章GIF图像失去了背景颜色,黑色,并在我的最终图像中变得透明。我的最终图片扩展名应与源文件GIF相同。
<?php
$source = 'path_to_file/source.gif';//190x34 size image with black background
$trans_img_dir = 'path_to_file/blank.png';
$final_image = 'path_to_file/final.gif';
$BLANK_IMG = 200;
//create transparent image
$imcreate = imagecreatetruecolor($BLANK_IMG, $BLANK_IMG);
imagecolortransparent($imcreate, imagecolorallocatealpha($imcreate, 0, 0, 0, 127));
//imagealphablending($imcreate, false);
//imagesavealpha($imcreate, true);
imagepng($imcreate, $trans_img_dir);
imagedestroy($imcreate);
$blank_mark = imagecreatefrompng($trans_img_dir);
$im = imagecreatefromgif($source);
$sx = imagesx($im);
$sy = imagesy($im);
imagecopy(
$blank_mark,
$im,
$BLANK_IMG/2 - $sx/2,
$BLANK_IMG/2 - $sy/2,
0,
0,
$sx,
$sy
);
imagegif($blank_mark, $final_image);
imagedestroy($blank_mark);
imagedestroy($im);
&GT;