所以,我试图在jpg / png图像上添加水印(png图像)。事情是......
如果我上传了一个jpg,代码就有效,但是当我上传一个png时,结果与我想要的结果不一样。
如果我上传了一个png,水印就会出现在我上传的图像前面,但是后台不再是透明的(这就是我想要的)。
if(isset($_GET['img'])) {
$image = $_GET['img'];
$stamp = imagecreatefrompng(DIR_PUBLIC . 'watermerk.png');
//$im = imagecreatefromjpeg(DIR_IMAGE . $image);
$fullPath = DIR_IMAGE . $image;
$path_parts = pathinfo($fullPath);
$ext = strtolower($path_parts["extension"]);
// Determine Content Type
switch ($ext) {
case "png":
$im = imagecreatefrompng($fullPath);
$ctype="image/png";
break;
case "jpeg":
case "jpg":
$ctype="image/jpg";
$im = imagecreatefromjpeg($fullPath);
break;
default:
$ctype="application/force-download";
}
// Get dimensions
$imageWidth = imagesx($im);
$imageHeight = imagesy($im);
$logoWidth = imagesx($stamp);
$logoHeight = imagesy($stamp);
// Paste the logo
imagecopy(
// destination
$im,
// source
$stamp,
// destination x and y
($imageWidth - $logoWidth) / 2, ($imageHeight - $logoHeight) / 2,
// source x and y
0, 0,
// width and height of the area of the source to copy
$logoWidth, $logoHeight
);
// Output and free memory
header("Content-Type: $ctype");
imagepng($im);
imagedestroy($im);
}
我想要的是:我希望能够上传png图像并在图像上保留水印图像。