我想制作一个完整的图像水印,可用于jpg,gif和png文件。但 它似乎没有工作。我的想法就是拥有一个1024x768透明的PNG-8 图像(并不重要,我只是按照this教程,然后就说了 建议使用它),将其大小调整为我想要叠加的图像大小,然后合并它们。 由于不是那么先进的GD,我不能让它工作,但是,这是我的代码:
$parts = explode('.', $filename);
$ext = $parts[count($parts)-1];
switch ($ext) {
case 'jpg':
$image = imagecreatefromjpeg($dir . $filename);
break;
case 'jpeg':
$image = imagecreatefromjpeg($dir . $filename);
break;
case 'png':
$image = imagecreatefrompng($dir . $filename);
break;
case 'gif':
$image = imagecreatefromgif($dir . $filename);
break;
}
$overlay = imagecreatefrompng($overlay);
$overlayNew = imagecreatetruecolor(imagesx($image), imagesy($image));
imagecolortransparent($overlayNew, imagecolorallocatealpha($overlayNew, 0, 0, 0, 127));
imagealphablending($overlayNew, false);
imagesavealpha($overlayNew, true);
imagecopyresized( $overlayNew , $overlay , 0 , 0 , 0 , 0 , imagesx($image) , imagesy($image) ,imagesx($overlay) , imagesy($overlay) );
imagecopymerge($image, $overlayNew,0, 0, 0, 0, imagesx($overlayNew), imagesy($overlayNew), $opacity);
$parts = explode(".", $filename);
imagepng($image, $dir . $parts[0] . '_watermarked.png');