引言
准备工作
- PHP环境
- GD库
- 图片处理库,如Imagick(可选)
- 中文字体文件
图片水印添加方法
1. 使用图片水印
1.1 准备水印图片
1.2 PHP代码示例
<?php
// 加载水印图片
$watermarkImage = imagecreatefrompng('watermark.png');
// 加载背景图片
$backgroundImage = imagecreatefromjpeg('background.jpg');
// 设置水印位置
$x = 10;
$y = 10;
// 将水印图片复制到背景图片上
imagecopy($backgroundImage, $watermarkImage, $x, $y, 0, 0, imagesx($watermarkImage), imagesy($watermarkImage));
// 输出图片
header('Content-Type: image/jpeg');
imagejpeg($backgroundImage);
// 释放资源
imagedestroy($backgroundImage);
imagedestroy($watermarkImage);
?>
2. 使用水印文字
2.1 准备中文字体文件
由于GD库默认不支持中文,你需要准备一个中文字体文件。这里以SimHei.ttf为例。
2.2 PHP代码示例
<?php
// 加载背景图片
$backgroundImage = imagecreatefromjpeg('background.jpg');
// 设置文字内容、字体和大小
$text = '这是中文水印';
$fontFile = 'SimHei.ttf';
$fontSize = 20;
// 计算文字的宽度和高度
$textWidth = imagettfbbox($fontSize, 0, $fontFile, $text)[2] - imagettfbbox($fontSize, 0, $fontFile, '')[2];
$textHeight = imagettfbbox($fontSize, 0, $fontFile, '')[7] - imagettfbbox($fontSize, 0, $fontFile, '')[1];
// 设置文字位置
$x = 10;
$y = 10;
// 添加文字水印
imagettftext($backgroundImage, $fontSize, 0, $x, $y, imagecolorallocate($backgroundImage, 255, 255, 255), $fontFile, $text);
// 输出图片
header('Content-Type: image/jpeg');
imagejpeg($backgroundImage);
// 释放资源
imagedestroy($backgroundImage);
?>