引言
前提条件
在开始之前,请确保你的PHP环境中已经安装了GD库。你可以通过以下PHP脚本检查GD库是否可用:
<?php
if (extension_loaded('gd')) {
echo "GD库已安装";
} else {
echo "GD库未安装";
}
?>
如果GD库未安装,你需要根据操作系统的不同,通过相应的包管理工具进行安装。
准备工作
PHP脚本环境:确保你的服务器支持PHP脚本执行。
步骤详解
1. 创建原始图片的GD资源
<?php
// 原始图片路径
$sourceImagePath = 'path/to/your/source/image.jpg';
// 创建原始图片的GD资源
$sourceImage = imagecreatefromjpeg($sourceImagePath);
?>
2. 创建水印图片的GD资源
<?php
// 水印图片路径
$watermarkImagePath = 'path/to/your/watermark/image.png';
// 创建水印图片的GD资源
$watermarkImage = imagecreatefrompng($watermarkImagePath);
?>
3. 获取图片大小信息
<?php
// 获取原始图片和水印图片的大小
$sourceImageWidth = imagesx($sourceImage);
$sourceImageHeight = imagesy($sourceImage);
$watermarkWidth = imagesx($watermarkImage);
$watermarkHeight = imagesy($watermarkImage);
?>
4. 添加水印到原始图片
<?php
// 输出图片路径
$outputImagePath = 'path/to/your/output/imagewithwatermark.jpg';
// 计算水印图片的位置
$x = $sourceImageWidth - $watermarkWidth - 10; // 10像素的边距
$y = $sourceImageHeight - $watermarkHeight - 10; // 10像素的边距
// 将水印图片添加到原始图片
imagecopymerge($sourceImage, $watermarkImage, $x, $y, 0, 0, $watermarkWidth, $watermarkHeight, 50); // 50%的透明度
?>
5. 保存并输出图片
<?php
// 保存处理后的图片
imagejpeg($sourceImage, $outputImagePath);
// 清理资源
imagedestroy($sourceImage);
imagedestroy($watermarkImage);
?>