1. 确保GD库已安装

首先,确保你的PHP环境中已经安装了GD库。你可以通过以下PHP脚本来检查GD库是否可用:

<?php
if (extension_loaded('gd')) {
    echo "GD库已安装";
} else {
    echo "GD库未安装";
}
?>

如果GD库未安装,你需要根据操作系统的不同,通过相应的包管理工具进行安装。

2. 准备原始图片和水印图片

3. 编写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);

// 计算水印位置
$positionX = $sourceImageWidth - $watermarkImageWidth;
$positionY = $sourceImageHeight - $watermarkImageHeight;

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

// 保存加水印后的图片
imagejpeg($sourceImage, $outputImagePath);

// 释放内存
imagedestroy($sourceImage);
imagedestroy($watermarkImage);
?>

4. PHP图片水印类文件

如果你需要更灵活的水印添加功能,可以考虑使用第三方类文件。以下是一个示例类文件:

<?php
class ImageWatermark {
    public $groundImage;
    public $waterPos;
    public $waterImage;
    public $waterText;
    public $textFont;
    public $textColor;

    public function __construct($groundImage, $waterPos = 1, $waterImage = '', $waterText = '', $textFont = 5, $textColor = '#FF0000') {
        $this->groundImage = $groundImage;
        $this->waterPos = $waterPos;
        $this->waterImage = $waterImage;
        $this->waterText = $waterText;
        $this->textFont = $textFont;
        $this->textColor = $textColor;
    }

    public function imageWaterMark() {
        // 代码实现省略,具体实现参考上述示例
    }
}
?>