当前位置:首页 > PHP

php水印实现

2026-02-14 13:52:43PHP

PHP 图片水印实现方法

使用 GD 库添加文字水印

安装 GD 库后,通过 imagettftext 函数实现文字水印。示例代码:

$image = imagecreatefromjpeg('source.jpg');
$color = imagecolorallocate($image, 255, 255, 255);
$font = 'arial.ttf';
imagettftext($image, 20, 0, 50, 50, $color, $font, 'Watermark Text');
header('Content-Type: image/jpeg');
imagejpeg($image);
imagedestroy($image);

使用 GD 库添加图片水印

通过 imagecopyimagecopymerge 合并水印图片:

$source = imagecreatefromjpeg('source.jpg');
$watermark = imagecreatefrompng('watermark.png');
imagecopymerge(
    $source, $watermark, 
    imagesx($source) - imagesx($watermark) - 10,
    imagesy($source) - imagesy($watermark) - 10,
    0, 0,
    imagesx($watermark), imagesy($watermark),
    50
);
header('Content-Type: image/jpeg');
imagejpeg($source);
imagedestroy($source);
imagedestroy($watermark);

使用 Imagick 扩展

Imagick 提供更强大的图像处理能力:

$image = new Imagick('source.jpg');
$watermark = new Imagick();
$watermark->newImage(200, 100, new ImagickPixel('transparent'));
$draw = new ImagickDraw();
$draw->setFontSize(30);
$draw->annotation(10, 50, 'Watermark');
$watermark->drawImage($draw);
$image->compositeImage($watermark, Imagick::COMPOSITE_OVER, 10, 10);
header('Content-Type: image/jpeg');
echo $image;

水印透明度控制

GD 库通过 imagecopymerge 的最后一个参数(0-100)控制透明度,Imagick 通过 setImageOpacity 方法:

$watermark->setImageOpacity(0.5);

批量处理目录图片

遍历目录并应用水印:

$files = glob('images/*.{jpg,png}', GLOB_BRACE);
foreach ($files as $file) {
    $image = imagecreatefromjpeg($file);
    // 添加水印操作
    imagejpeg($image, 'watermarked/' . basename($file));
    imagedestroy($image);
}

注意事项

php水印实现

  • 确保服务器已安装 GD 或 Imagick 扩展
  • 字体文件路径需正确
  • 处理前检查文件权限
  • 大图片处理需考虑内存限制

以上方法可根据实际需求调整水印位置、大小、透明度等参数。对于生产环境,建议添加错误处理机制并考虑性能优化。

标签: 水印php
分享给朋友:

相关文章

php实现栈

php实现栈

栈的基本概念 栈(Stack)是一种遵循后进先出(LIFO)原则的数据结构。核心操作包括: push:元素入栈。 pop:元素出栈(返回并移除栈顶元素)。 peek:查看栈顶元素(不移除…

php实现上传

php实现上传

PHP 文件上传实现 HTML 表单设置 创建一个包含文件上传字段的 HTML 表单,确保表单的 enctype 属性设置为 multipart/form-data,这是文件上传必需的设置。 <…

php 实现验证码

php 实现验证码

使用 PHP 生成验证码 验证码(CAPTCHA)用于防止自动化脚本提交表单,以下是几种常见的 PHP 实现方法。 使用 GD 库生成图片验证码 GD 库是 PHP 的图像处理扩展,可用于生成验证码…

vue 水印 实现

vue 水印 实现

Vue 水印实现方法 使用 Canvas 绘制水印 在 Vue 中可以通过 Canvas 动态生成水印,并将其作为背景或覆盖层添加到页面中。 <template> <div c…

php 实现类

php 实现类

PHP 类的基本实现 在 PHP 中,类通过 class 关键字定义,后跟类名和一对花括号。类名通常遵循大驼峰命名法(如 ClassName)。以下是基本语法: class ClassName {…

php https实现

php https实现

PHP 中实现 HTTPS 的方法 在 PHP 中实现 HTTPS 主要通过配置服务器和编写代码来确保通信的安全性。以下是几种常见的方法: 配置服务器支持 HTTPS 确保服务器已安装 SSL/T…