更新记录

1.0.2(2026-03-12)

修改文档

1.0.1(2026-03-12)

修改文档

1.0.0(2026-03-12)

首次发布

查看更多

平台兼容性

云端兼容性

阿里云 腾讯云 支付宝云

云函数类插件通用教程

使用云函数类插件的前提是:使用HBuilderX 2.9+


图片水印服务 API 文档

🚨 重要提示

请您先试用再购买!
在正式购买前,请务必点击页面上的 "导入插件并试用" 按钮进行充分测试。
本插件由开发者利用业余时间开发维护,可能存在以下情况:

  • 功能兼容性:请确认插件完全满足您的项目需求
  • 问题响应:Bug修复可能无法做到即时响应
  • 支持限制:优先处理已确认购买的正式用户问题

强烈建议:在试用环境中全面测试后,确认功能满足需求再进行购买!
感谢您的理解与支持 🙏


兼容性说明

本云对象服务全面兼容以下平台和框架:

平台/框架 支持情况 特别说明
UniApp ✅ 完全兼容 支持所有UniApp版本
UniApp-X ✅ 完全兼容 支持新一代跨平台框架
微信小程序 ✅ 完全兼容 支持最新版本API
QQ小程序 ✅ 完全兼容 已通过官方测试
支付宝小程序 ✅ 完全兼容 支持最新版本
百度小程序 ✅ 完全兼容 已适配百度环境
字节跳动小程序 ✅ 完全兼容 支持抖音/头条小程序
快应用 ✅ 完全兼容 支持华为/小米等快应用
H5 ✅ 完全兼容 支持所有现代浏览器
App ✅ 完全兼容 同时支持Android和iOS
Vue ✅ 完全兼容 支持Vue 2.x和3.x
NVue ✅ 完全兼容 高性能原生渲染支持
Web ✅ 完全兼容 支持PC和移动端浏览器

方法列表

1. 图片水印

方法名
addImageWatermark(params)

请求参数

参数名 类型 必填 默认值 说明与限制
sourceImage string/Buffer - 原始图片(URL/Buffer/Base64)
watermarkImage string/Buffer - 水印图标(URL/Buffer/Base64)
width number 20%原始图片 水印图标宽度
height number null 水印图标高度
x number 0 水印图标位置x坐标
y number 0 水印图标位置y坐标
opacity number 100 水印图标透明度(1-100)
quality number 70 图片水印质量(1-100)压缩效果

注意:原始图片和水印图片格式必须是png/jpg/jpeg。

返回结果

{
  code: Number,        // 200=成功
  message: String,     // 结果描述
  success: Boolean,    // 成功标识
  timestamp: Number,   // 时间戳
  data: {
    image: String,            // 加水印后的Base64数据
  }
}

2. 文字水印

方法名
addTextWatermark(params)

请求参数

参数名 类型 必填 默认值 说明与限制
sourceImage string/Buffer - 原始图片(URL/Buffer/Base64)
text string - 文字水印内容 只支持特殊字符
fontSize number 16 文字大小(8/10/12/14/16/18/20/22/24/26/28/32/64)
isBold boolean false 文字是否加粗
color string '#000000' 文字颜色(十六进制)
x number 0 水印图标位置x坐标
y number 0 水印图标位置y坐标
opacity number 100 水印图标透明度(1-100)
quality number 70 图片水印质量(1-100)压缩效果

注意:原始图片格式必须是png/jpg/jpeg。文字水印内容只支持0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!№;%:?*()_+-=.,/|"'@#$^&{}[]<>\《》,。【】;‘·~

返回结果

{
  code: Number,        // 200=成功
  message: String,     // 结果描述
  success: Boolean,    // 成功标识
  timestamp: Number,   // 时间戳
  data: {
    image: String,            // 加水印后的Base64数据
  }
}

方法调用示例

示例1:添加图片水印

const watermarkService = uniCloud.importObject('watermark-gsz')

const res = await watermarkService.addImageWatermark({
  sourceImage: 'https://example.com/source.jpg',
  watermarkImage: 'https://example.com/watermark.png',
  x: 100,
  y: 100,
  opacity: 50
})

if (res.success) {
  console.log('图片水印添加成功')
  console.log('加水印后base64:', res.data.base64)
}

示例2:添加文字水印

const watermarkService = uniCloud.importObject('watermark-gsz')

const res = await watermarkService.addTextWatermark({
  sourceImage: 'https://example.com/source.jpg',
  text: '版权所有',
  fontSize: 16,
  color: '#FF0000',
  opacity: 80
})

if (res.success) {
  console.log('文字水印添加成功')
  console.log('加水印后base64:', res.data.base64)
}

关键特性说明

1. 水印位置智能处理

  • 边界检查:水印位置自动调整,防止超出图片范围
  • 相对位置:支持相对于图片边缘的位置计算

处理规则

  • 当x/y超出图片范围时,自动调整到合理位置
  • 支持负数坐标,表示从图片边缘向内偏移

2. 图片格式支持

  • 输入格式:JPEG、PNG
  • 输出格式:JPG

3. 透明度参数说明

  • 范围:1-100,整数
  • 默认值:100(完全不透明)
  • 推荐值
    • 明显水印:80-100
    • 半透明水印:50-70
    • 隐形水印:10-30

4. 文字水印特性

  • 颜色支持:支持任意十六进制颜色
  • 加粗支持:支持文字加粗
  • 换行处理:自动处理文字换行,确保不超出图片宽度

错误码说明

错误码 错误类型 说明 处理建议
200 success 操作成功 -
400 params_error 通用参数错误 检查请求参数格式
4001 params_error 必填参数为空 检查必填参数
4002 params_error 参数格式错误 检查参数格式
4003 params_error 参数超出有效范围 调整参数到合法范围
401 file_error 文件格式错误 仅支持png/jpg/jpeg/webp格式
404 file_error 文件不存在 检查文件路径或URL
405 file_error 文件过大 压缩后重新上传
500 process_error 处理失败 重试或联系管理员
5001 process_error 图片处理失败 检查图片格式和大小
5002 process_error 字体加载失败 检查字体路径
5003 process_error 图片压缩失败 重试或联系管理员
501 format_error 不支持的文件格式 转换为支持的格式
502 network_error 网络请求失败 检查网络连接
503 timeout_error 请求超时 尝试较小的图片或检查网络
504 permission_error 权限不足 检查文件访问权限

常见问题(FAQ)

Q:支持哪些图片格式?
A:目前支持JPEG、PNG。

Q:水印位置超出图片范围怎么办?
A:服务会自动调整水印位置,确保不超出图片范围。

Q:文字水印如何换行?
A:服务会自动处理文字换行,确保不超出图片宽度。

Q:如何添加半透明水印?
A:通过设置opacity参数(1-100)来调整水印透明度。

Q:批量处理水印是否支持?
A:目前不支持批量处理,建议循环调用单张处理接口。

Q:水印处理超时怎么办?
A:原始图片越大所需要的处理时间越长;请自行配置云对象的超时时间、函数执行内存等。

Q:如何判断水印添加成功?
A:返回结果中success字段为true表示处理成功,同时会返回加水印后的Base64数据。

Q:压缩后的图片可以直接上传到云存储吗?
A:服务返回的是Base64,需要前端自行调用uniCloud.uploadFile上传到云存储。

Q:Base64格式如何传递?
A:支持纯base64字符串和data URL格式(如data:image/jpeg;base64,...)。

Q:数据太大云对象有限制?
A:云对象的接收参数的体积上限,支付宝云接收参数大小不可超过6MB,阿里云接收参数大小不可超过2MB,腾讯云接收参数大小不可超过5MB,由于传输层还有上下文环境信息,所以开发者给云对象发送参数时需注意控制参数体积。

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

暂无用户评论。