在网页开发中,为了保护图片的版权以及添加一些个性化的效果,我们经常需要在图片上添加水印。
在本文中,我将介绍如何使用PHP来实现图片添加水印的功能,并给出相应的代码示例。
步骤一:获取图片和水印图片的路径
在进行图片添加水印之前,我们需要先获取待处理图片和水印图片的路径。
可以通过以下代码来实现:
$imgPath = "path/to/image.jpg"; // 待处理图片路径 $watermarkPath = "path/to/watermark.png"; // 水印图片路径
步骤二:创建一个带有水印的新图片
接下来,我们需要创建一个新的图片,并将待处理的图片以及水印图片合并到新图片中。
可以通过以下代码来实现:
// 获取待处理图片信息 $imgInfo = getimagesize($imgPath); $imgWidth = $imgInfo[0]; // 图片宽度 $imgHeight = $imgInfo[1]; // 图片高度 // 创建一个带有水印的新图片 $newImg = imagecreatefromjpeg($imgPath); // 获取水印图片信息 $wmInfo = getimagesize($watermarkPath); $wmWidth = $wmInfo[0]; // 水印图片宽度 $wmHeight = $wmInfo[1]; // 水印图片高度 // 计算水印图片在新图片中的位置 $posX = $imgWidth - $wmWidth - 10; // 水印图片的X坐标 $posY = $imgHeight - $wmHeight - 10; // 水印图片的Y坐标 // 合并水印图片到新图片中 $watermark = imagecreatefrompng($watermarkPath); imagecopy($newImg, $watermark, $posX, $posY, 0, 0, $wmWidth, $wmHeight);
步骤三:输出或保存带有水印的新图片
最后一步是将带有水印的新图片进行输出或保存,取决于我们的需求。
可以通过以下代码来实现:
// 输出带有水印的新图片 header('Content-Type: image/jpeg'); imagejpeg($newImg); // 或者保存带有水印的新图片 $newImgPath = "path/to/newImage.jpg"; // 保存路径 imagejpeg($newImg, $newImgPath); // 释放内存 imagedestroy($newImg); imagedestroy($watermark);
还没有评论,来说两句吧...