引言

前提条件

  • PHP环境已安装GD库
  • 有基本的PHP编程知识

步骤一:准备图片和水印素材

在开始之前,您需要准备以下素材:

  • 原始图片:您想要添加水印的图片文件。
  • 水印素材:可以是图片或文字。

步骤二:安装GD库

确保您的PHP环境中已安装GD库。可以通过编辑php.ini文件来启用GD库:

extension=php_gd2

重启Web服务器以应用更改。

步骤三:创建PHP脚本

创建一个PHP文件,例如add_watermark.php,并编写以下代码:

<?php
// 设置原始图片和水印图片的路径
$srcImage = 'path/to/source/image.jpg';
$waterImage = 'path/to/watermark/image.png';

// 打开原始图片和水印图片
$srcImg = imagecreatefromjpeg($srcImage);
$waterImg = imagecreatefrompng($waterImage);

// 获取图片尺寸
$srcWidth = imagesx($srcImg);
$srcHeight = imagesy($srcImg);
$waterWidth = imagesx($waterImg);
$waterHeight = imagesy($waterImg);

// 设置水印位置
$positionX = ($srcWidth - $waterWidth) / 2;
$positionY = ($srcHeight - $waterHeight) / 2;

// 合并图片
imagecopymerge($srcImg, $waterImg, $positionX, $positionY, 0, 0, $waterWidth, $waterHeight, 50);

// 输出图片
header('Content-Type: image/jpeg');
imagejpeg($srcImg);

// 释放内存
imagedestroy($srcImg);
imagedestroy($waterImg);
?>

步骤四:运行PHP脚本

步骤五:添加文字水印

如果您想要添加文字水印,可以使用imagettftext函数。以下是修改后的代码:

<?php
// 设置原始图片和水印文本
$srcImage = 'path/to/source/image.jpg';
$waterText = 'Copyright © 2023';

// 打开原始图片
$srcImg = imagecreatefromjpeg($srcImage);

// 获取图片尺寸
$srcWidth = imagesx($srcImg);
$srcHeight = imagesy($srcImg);

// 设置文字水印的字体和颜色
$fontFile = 'path/to/font/arial.ttf';
$fontColor = imagecolorallocate($srcImg, 255, 255, 255); // 白色
$fontSize = 20;

// 设置水印位置
$positionX = $srcWidth - 100;
$positionY = $srcHeight - 30;

// 添加文字水印
imagettftext($srcImg, $fontSize, 0, $positionX, $positionY, $fontColor, $fontFile, $waterText);

// 输出图片
header('Content-Type: image/jpeg');
imagejpeg($srcImg);

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

总结