当前位置:首页 > 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 扩展

php水印实现

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 方法:

php水印实现

$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);
}

注意事项

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

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

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

相关文章

vue实现水印组件

vue实现水印组件

Vue 水印组件实现 基础水印组件实现 创建一个基础水印组件,通过 props 接收文本、颜色、大小等参数: <template> <div class="watermark-…

基于php的设计与实现

基于php的设计与实现

PHP 设计与实现的关键要素 环境搭建与框架选择 PHP开发需配置服务器环境(如Apache/Nginx)、PHP版本(建议7.4+)及数据库(MySQL/MariaDB)。主流框架包括Laravel…

php实现即时通讯

php实现即时通讯

PHP 实现即时通讯的方案 即时通讯(IM)可以通过多种方式实现,PHP 作为服务器端语言,通常需要结合前端技术(如 WebSocket、AJAX)或第三方服务来实现实时通信。以下是几种常见的实现方式…

php搜索功能实现

php搜索功能实现

实现基本的PHP搜索功能 使用MySQL数据库和PHP实现简单的关键词搜索功能。需要确保数据库中有可供搜索的表和数据。 // 连接数据库 $conn = new mysqli('localhost…

php实现统计

php实现统计

PHP 实现统计功能 在 PHP 中实现统计功能通常涉及数据的收集、处理和展示。以下是一些常见的统计实现方法: 数据库数据统计 通过 SQL 查询可以直接从数据库中获取统计结果: $conn =…

php 函数实现

php 函数实现

PHP 函数实现基础 PHP 函数的定义使用 function 关键字,后跟函数名和参数列表。函数名不区分大小写,但建议保持一致。 function functionName($param1, $p…