1. 文字水印
文字水印在图像处理中常用于添加一些标识信息或版权声明。使用PHP进行文字水印的步骤大致可以分为以下几个:
1.1 打开图像并创建画布
首先,我们需要打开原始图像,并创建一个和原始图像大小相同的画布,以便后续操作。
$sourceImage = imagecreatefromjpeg('example.jpg');
$watermarkImage = imagecreatetruecolor(imagesx($sourceImage), imagesy($sourceImage));
1.2 设置颜色和字体样式
我们可以通过调用imagecolorallocate()
函数设置水印的颜色,以及通过imagettftext()
函数设置水印的字体、大小和位置。
$textColor = imagecolorallocate($watermarkImage, 255, 255, 255);
$fontFile = 'arial.ttf';
imagettftext($watermarkImage, 12, 0, 10, 20, $textColor, $fontFile, 'This is a watermark');
1.3 合并画布和原始图像
最后,我们通过调用imagecopy()
或imagecopymerge()
函数将水印画布合并到原始图像上。
imagecopymerge($sourceImage, $watermarkImage, 0, 0, 0, 0, imagesx($sourceImage), imagesy($sourceImage), 50);
1.4 保存和输出水印图像
完成合并后,我们可以将水印图片保存到文件或输出到浏览器。
imagejpeg($sourceImage, 'watermarked.jpg');
imagedestroy($sourceImage);
imagedestroy($watermarkImage);
2. 图片水印
图片水印与文字水印类似,只是替换了文字信息为另一张图像。下面是实现图片水印的方法:
2.1 打开主图和水印图
$mainImage = imagecreatefromjpeg('main.jpg');
$watermarkImage = imagecreatefrompng('watermark.png');
2.2 设置水印位置和透明度
通过调整imagecopy()
或imagecopymerge()
函数的参数,可以设置水印的位置、大小和透明度。
imagecopy($mainImage, $watermarkImage, 10, 10, 0, 0, imagesx($watermarkImage), imagesy($watermarkImage));
2.3 保存和输出水印图像
imagejpeg($mainImage, 'watermarked.jpg');
imagedestroy($mainImage);
imagedestroy($watermarkImage);
通过以上步骤,我们可以实现在图像上添加文字水印或图片水印的效果。这些水印可以有不同的样式、位置、透明度等设置。可以根据具体需求来调整参数和细节,以达到最佳效果。
文字水印和图片水印常被用于保护图像的版权、标识出处等用途,提高图像的可识别性和安全性。