一、准备工作
在开始之前,请确保您的PHP环境中已经安装了GD库。您可以通过以下PHP脚本检查GD库是否可用:
<?php
if (extension_loaded('gd')) {
echo "GD库已安装";
} else {
echo "GD库未安装";
}
?>
如果GD库未安装,您需要根据操作系统的不同,通过相应的包管理工具进行安装。
二、准备原始图片和水印图片
三、编写PHP脚本添加水印
<?php
// 原始图片路径
$sourceImagePath = 'path/to/your/source/image.jpg';
// 水印图片路径
$watermarkImagePath = 'path/to/your/watermark/image.png';
// 输出图片路径
$outputImagePath = 'path/to/your/output/imagewithwatermark.jpg';
// 创建原始图片的GD资源
$sourceImage = imagecreatefromjpeg($sourceImagePath);
// 创建水印图片的GD资源
$watermarkImage = imagecreatefrompng($watermarkImagePath);
// 获取原始图片和水印图片的尺寸
$sourceWidth = imagesx($sourceImage);
$sourceHeight = imagesy($sourceImage);
$watermarkWidth = imagesx($watermarkImage);
$watermarkHeight = imagesy($watermarkImage);
// 计算水印位置
$watermarkX = $sourceWidth - $watermarkWidth - 10;
$watermarkY = $sourceHeight - $watermarkHeight - 10;
// 将水印图片合并到原始图片上
imagecopy($sourceImage, $watermarkImage, $watermarkX, $watermarkY, 0, 0, $watermarkWidth, $watermarkHeight);
// 输出或保存添加水印后的图片
imagejpeg($sourceImage, $outputImagePath);
// 或者直接在浏览器中输出
header('Content-type: image/jpeg');
imagejpeg($sourceImage);
// 销毁图片资源
imagedestroy($sourceImage);
imagedestroy($watermarkImage);
?>
四、使用文字作为水印
如果您想使用文字作为水印,可以使用imagettftext()函数。以下是一个示例:
<?php
// ...(省略上述代码)
// 设置字体路径
$fontPath = 'path/to/your/font/STXINGKA.ttf';
// 填写水印内容
$content = '版权所有';
// 设置字体大小
$fontSize = 20;
// 设置字体颜色和透明度
$color = imagecolorallocatealpha($sourceImage, 255, 255, 255, 50);
// 设置字体角度
$angle = 0;
// 添加文字水印
imagettftext($sourceImage, $fontSize, $angle, $watermarkX, $watermarkY, $color, $fontPath, $content);
// ...(省略上述代码)
?>