我正在尝试为图像添加水印,然后使用php将图像保存到另一个文件。这是我到目前为止的代码,但由于某种原因,水印没有出现在新目录中的图像上。
原始图片保存在路径$old_path
中,我想在应用水印后将其保存到$new_path
。
$old_path = "images_upload/".$name.".".$type;
$new_path = "images_main/".$name.".".$type;
////////////////////water mark
$main_image = imagecreatefromstring(file_get_contents($old_path));
// Load the logo image
$logoImage = imagecreatefrompng("assets/watermark.png");
imagealphablending($logoImage, true);
// Get dimensions
$imageWidth=imagesx($main_image);
$imageHeight=imagesy($main_image);
$logoWidth=imagesx($logoImage);
$logoHeight=imagesy($logoImage);
// Paste the logo
imagecopy(
// source
$main_image,
// destination
$logoImage,
// destination x and y
$imageWidth-$logoWidth, $imageHeight-$logoHeight,
// source x and y
0, 0,
// width and height of the area of the source to copy
$logoWidth, $logoHeight);
////////////////////////
rename($old_path, $new_path);// save image
请告诉我我做错了什么。
答案 0 :(得分:2)
您永远不会将imagecopy
结果写入任何文件,只需将旧图像重命名为新路径 - 请改用imagejpeg:
imagejpeg($logoImage, $new_path);
答案 1 :(得分:1)
您没有在任何地方输出图像。你需要输出它。您现在正在做的就是将旧文件重命名为新文件。
尝试使用imagepng()
或同等格式的格式。 http://php.net/manual/en/function.imagepng.php