引言

准备工作

在开始之前,请确保你的PHP环境中已经安装了GD库。你可以通过以下代码检查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);

// 获取原始图片和水印图片的尺寸
$sourceImageWidth = imagesx($sourceImage);
$sourceImageHeight = imagesy($sourceImage);
$watermarkImageWidth = imagesx($watermarkImage);
$watermarkImageHeight = imagesy($watermarkImage);

// 计算水印的位置
$x = $sourceImageWidth - $watermarkImageWidth - 10;
$y = $sourceImageHeight - $watermarkImageHeight - 10;

// 将水印图片合并到原始图片上
imagecopymerge($sourceImage, $watermarkImage, $x, $y, 0, 0, $watermarkImageWidth, $watermarkImageHeight, 100);

// 输出图片
imagejpeg($sourceImage, $outputImagePath);

// 销毁图片资源
imagedestroy($sourceImage);
imagedestroy($watermarkImage);
?>

实用技巧

  1. 调整透明度:通过调整imagecopymerge()函数的第四个参数(透明度),你可以控制水印的透明度。值越高,水印越透明。
  2. 旋转水印:使用imagerotate()函数可以旋转水印图片,为你的作品增添更多创意。
  3. 添加文字水印:除了图片水印,你还可以添加文字水印。使用imagestring()函数可以在图片上添加文字。

总结