我正在尝试为图像添加水印,但是当图像为PNG格式时,水印会失去透明度。
$watermark = imagecreatefrompng('logo.png');
$watermarkWidght = imagesx($watermark);
$watermarkHeigth = imagesy($watermark);
$image = imagecreatefrompng($path);
$imageWidght = imagesx($imagenss);
$imageHeigth = imagesy($imagenss);
$positionX = ($imageWidght) - ($watermarkWidght);
$positiony = ($imageHeigth) - ($watermarkHeigth);
imagealphablending($image , true); // set alpha
imagesavealpha($image , true);
imagecopy($imagenss, $watermark, (int)$positionX, (int)$positiony,0,0, $watermarkWidght,$watermarkHeigth);
ob_start();
imagepng($imagenss);
$ImageData=ob_get_contents();
ob_end_clean();
当背景图片为.png格式时,水印应保持透明度。 当涉及 .jpg 格式的图像时,水印保持透明度。