# WPWaterMark 轻水印插件

WordPress 轻量级水印插件，支持文字水印和图片水印，自动为上传的图片添加水印，加强图片防盗能力，保护文章版权。

## 插件团队和技术支持

老蒋和他的伙伴们本着资源共享原则，在运营网站过程中用到的或者是有需要用到的主题、插件资源，有选择的免费分享给广大的网友站长，希望能够帮助到你建站过程中提高效率。

感谢团队成员，以及网友提出的优化工具的建议，才有后续产品的不断迭代适合且满足用户需要。不能确保100%的符合兼容网站，我们也仅能做到在工作之余不断的接近和满足你的需要。

| 类目             | 信息                                                         |
| ---------------- | ------------------------------------------------------------ |
| 插件更新地址     | https://www.lezaiyun.com/wpwatermark.html                          |
| 团队成员         | [老蒋](https://www.laojiang.me/)、老赵、[CNJOEL](https://www.rakvps.com/)、木村 |
| 支持网站         | 乐在云、主机评价网、老蒋玩主机                               |
| 建站资源推荐     | [便宜VPS推荐](https://www.zhujipingjia.com/pianyivps.html)、[美国VPS推荐](https://www.zhujipingjia.com/uscn2gia.html)、[外贸建站主机](https://www.zhujipingjia.com/wordpress-hosting.html)、[SSL证书推荐](https://www.zhujipingjia.com/two-ssls.html)、[WordPress主机推荐](https://www.zhujipingjia.com/wpblog-host.html) |
| 提交WP官网（是） | https://cn.wordpress.org/plugins/wpwatermark/                |

## 功能特性

### 核心功能

- **双水印类型**：支持文字水印和图片水印两种方式
- **九宫格位置**：提供 9 种固定水印位置（左上、中上、右上、左中、中心、右中、左下、中下、右下）
- **自动添加**：图片上传时自动添加水印，无需手动操作
- **智能过滤**：可设置最小尺寸限制，仅对超过指定宽高的图片添加水印

### 文字水印

- 自定义水印文字内容
- 支持多种字体（可将 TTF 字体文件放入 `fonts` 目录）
- 可调节字体大小、颜色、旋转角度（0–360°）

### 图片水印

- 支持 PNG、JPG、GIF 格式水印图片
- 透明度调节（0–100%）
- 完美支持透明 PNG 水印

### 其他特性

- **插件开关**：可随时关闭水印功能而不影响已保存的设置
- **实时预览**：在设置页面预览水印效果
- **性能优化**：水印结果缓存，减少重复计算
- **多格式支持**：支持 JPEG、PNG、GIF 格式的源图片

## 环境要求

- **WordPress**：4.6.0 或更高版本
- **PHP**：7.4 或更高版本

## 安装方法

1. 将 `wpwatermark` 文件夹上传到 `/wp-content/plugins/` 目录
2. 在 WordPress 后台「插件」列表中激活 WPWaterMark
3. 在左侧菜单找到「WPWaterMark」进入设置页面
4. 配置水印参数并保存

## 使用说明

### 基本设置

1. **启用水印**：勾选「启用水印功能」后，水印才会生效
2. **选择类型**：根据需要选择「文字水印」或「图片水印」
3. **设置位置**：点击九宫格选择水印放置位置
4. **边距设置**：设置水印距离图片边缘的距离（像素）

### 文字水印配置

- **水印文字**：输入要显示的文字（如网站名称、域名等）
- **字体**：从 `fonts` 目录中选择字体文件
- **字体大小**：1–100 像素
- **字体颜色**：使用颜色选择器选择
- **文字角度**：0–360 度旋转

### 图片水印配置

- **水印图片**：点击「选择图片」上传或选择水印图片（推荐使用透明 PNG）
- **透明度**：0–100，100 为完全不透明

### 最小尺寸限制

- **宽度**：仅对宽度超过此值的图片添加水印（默认 300px）
- **高度**：仅对高度超过此值的图片添加水印（默认 300px）

此设置可避免对小图标、缩略图等添加水印，提升用户体验。

## 目录结构

```
wpwatermark/
├── index.php           # 插件主文件
├── setting_page.php    # 设置页面
├── WaterMarkConfig.php # 配置管理
├── WaterMarkHandler.php# 水印处理逻辑
├── WaterMarkPerformance.php # 性能监控
├── css/                # 样式文件
├── js/                 # 脚本文件
├── fonts/              # 字体文件目录
├── cache/              # 水印缓存
└── logs/               # 日志文件
```

## 常见问题

**Q: 插件出错怎么办？**  
A: 开启 WordPress 调试模式获取详细错误信息。

**Q: 使用随机水印或满铺水印时如何设置？**  
A: 建议适当降低透明度以兼顾防盗效果和用户体验。

**Q: 如何添加自定义字体？**  
A: 将 TTF 字体文件放入插件的 `fonts` 目录，即可在设置中选择。

## 更新日志

### 5.2.4
- 修复经压缩软件处理后的图片上传加水印时只看到水印、看不到原图的问题
- 新增三层图片解码回退：GD 原生读取 → imagecreatefromstring → Imagick（环境支持时）
- 新增解码结果异常检测：全白、全透明或纯色图自动换下一层方式重试
- 修正图片水印合成时 JPG/GIF 被放入透明画布导致原图丢失的问题，按格式分别创建不透明/透明画布

### 5.2.3
- 修复部分特殊 JPEG 图片添加水印后原图变白、但水印仍可见的问题：对 CMYK/特殊色彩空间 JPEG 在支持 Imagick 的环境中先转换为 sRGB，再交给 GD 处理
- 优化 PNG/GIF/WebP 等图片加载流程：统一转真彩色资源，并保留 PNG/WebP 透明通道，减少透明度和合成异常
- 新增水印输出体积保护：先写入临时文件再替换原图，JPG/WebP 超过原图约 20% 时在保守质量范围内自动重编码，PNG 偏大时自动使用 9 级无损压缩重试
- 改进保存失败处理：水印保存失败时明确返回错误，避免覆盖写入失败造成原文件异常

### 5.2.2
- 优化水印输出体积：修正 PNG 保存时压缩级别为 0（无 zlib 压缩）导致文件异常偏大的问题，默认使用合理无损压缩级别
- JPEG / WebP 默认输出质量改为 82，并与全站 `jpeg_quality` 过滤器对齐，减轻相对原图的体积膨胀
- 设置页新增「输出体积优化」：可分别调节 JPEG/WebP 质量（40–100）与 PNG 压缩级别（0–9，无损）

### 5.2.1
- 优化文字水印渲染：采用透明图层合成，减少文字边缘发白/描边感，文字更干净
- 新增图片水印缩放比例（1-100%），支持等比例缩小，避免上传过大的水印图遮挡主体
- 默认关闭水印缓存读写，避免 `cache` 目录长期累积占用服务器空间

### 5.1.7
- 新增统一透明度设置，文字水印与图片水印都可调节透明度
- 设置页透明度说明改为两种水印类型通用，避免理解歧义
- 修正文本水印缓存文件扩展名策略，按实际图片格式缓存

### 5.1.6
- 新增「水印白名单后缀」设置，支持上传时按后缀跳过添加水印
- 上传流程增加白名单后缀判断，命中后缀文件不处理水印
- 检查并补充 WebP 水印支持：环境支持时可处理 WebP，不支持时在设置页面提示

### 5.1.5
- 新增「随机九宫格」：与固定九宫格二选一，每次上传时在九个格子中随机选取水印位置
- 随机模式下不使用水印缓存，避免随机结果被缓存固定
- 修复保存「随机九宫格」后设置页仍显示为「固定九宫格」的问题（前端同步与后端按单选项保存）

### 5.1.4
- 当前稳定版本

### 5.1.3
- 修复透明 PNG 水印图片不透明的问题

### 5.1.1
- 新增插件开关选项，便于不需要时关闭且不影响设置

### 5.0.0
- 重构水印插件框架
- 去除 Layui 前端框架，减少插件体积
- 提高水印位置体验和水印图片演示

## 许可证

GPL v2 或更高版本 - [查看完整许可证](http://www.gnu.org/licenses/gpl-2.0.html)

![](wechat.png)
