PHP GD库加水印是轻量版权保护方案,支持文字(需中文字体及透明色)和图片(PNG需保留Alpha通道)水印,关键在GD启用、FreeType支持、透明处理函数调用及安全配置。

用 PHP 的 GD 库给图片加水印,是实现基础版权保护最直接、轻量的方式。核心在于读取原图、加载水印(文字或图片)、按指定位置和透明度叠加,再输出或保存。只要服务器支持 GD 扩展(PHP 默认常开启),几行代码就能生效。
确认 GD 库已启用
运行以下代码检查环境是否就绪:
if (!extension_loaded('gd')) {<br> die('GD 扩展未启用,请在 php.ini 中开启 extension=gd');<br>}<br>echo 'GD 版本:' . GD_VERSION;常见问题:缺少 FreeType 支持会导致中文乱码;PNG 透明背景不保留,多因未调用 imagealphablending() 和 imagesavealpha()。
添加文字水印(支持中文)
关键点是使用支持中文的字体文件(如 simhei.ttf),并设置合适的坐标、颜色与透明度:
立即学习“PHP免费学习笔记(深入)”;
- 用
imagettfbbox()计算文字宽高,实现居中/右下角等定位 - 调用
imagettftext()绘制,颜色用imagecolorallocatealpha()设置透明度(第4参数 0~127) - 中文路径需确保字体文件存在且 Web 服务有读取权限
$img = imagecreatefromjpeg('photo.jpg');<br>$font = 'simhei.ttf';<br>$size = 24;<br>$angle = 0;<br>$x = imagesx($img) - 200;<br>$y = imagesy($img) - 20;<br>$color = imagecolorallocatealpha($img, 255, 255, 255, 80); // 半透明白色<br>imagettftext($img, $size, $angle, $x, $y, $color, $font, '© 2024 YourSite');<br>header('Content-Type: image/jpeg');<br>imagejpeg($img);<br>imagedestroy($img);添加图片水印(Logo 叠加)
适用于带透明通道的 PNG 水印图,重点控制缩放、位置与 Alpha 合成:
- 用
imagecreatefrompng()加载水印图,必须调用imagealphablending($watermark, false)和imagesavealpha($watermark, true) - 用
imagesx()/imagesy()获取尺寸,计算目标位置(如右下角留边 10px) - 用
imagecopy()或更推荐的imagecopymerge()(支持透明度百分比)叠加
$src = imagecreatefromjpeg('photo.jpg');<br>$watermark = imagecreatefrompng('logo.png');<br>// 关键:保留 PNG 透明信息<br>imagealphablending($watermark, false);<br>imagesavealpha($watermark, true);<br><br>$sx = imagesx($src);<br>$sy = imagesy($src);<br>$wx = imagesx($watermark);<br>$wy = imagesy($watermark);<br>$dst_x = $sx - $wx - 10;<br>$dst_y = $sy - $wy - 10;<br><br>// 70% 透明度叠加<br>imagecopymerge($src, $watermark, $dst_x, $dst_y, 0, 0, $wx, $wy, 70);<br>imagejpeg($src, 'output.jpg', 95);<br>imagedestroy($src); imagedestroy($watermark);安全与实用建议
- 不要在公开目录直接暴露处理脚本,建议通过 API 接口 + 鉴权(如 token)调用
- 批量处理时注意内存限制,大图建议用
ini_set('memory_limit', '256M') - 水印位置避免固定角落,可随机偏移 ±15px 增加破解难度
- 敏感图片建议结合其他手段:禁用右键、添加不可见数字水印(如 LSB 隐写)、服务端鉴权访问
不复杂但容易忽略细节。把字体路径、透明模式、坐标逻辑理清楚,一次配置就能稳定复用。



















