欢迎各位兄弟 发布技术文章
这里的技术是共享的
七牛云存储提供三种水印接口:图片水印、文字水印,以及一次请求中同时打多个水印。
注意:watermark 接口支持的最大 gif 帧数为 200,超过 200,处理结果只返回原图。
注意:接口规格不含任何空格与换行符。
watermark/1
/image/<encodedImageURL>
/dissolve/<dissolve>
/gravity/<gravity>
/dx/<distanceX>
/dy/<distanceY>
/ws/<watermarkScale>
参数名称 | 必填 | 说明 |
---|---|---|
/image/<encodedImageURL> | 是 | 水印源图片网址(经过URL安全的Base64编码),必须有效且返回一张图片。 |
/dissolve/<dissolve> | 透明度,取值范围1-100,默认值为100(完全不透明)。 | |
/gravity/<gravity> | 水印位置,参考水印锚点参数表,默认值为SouthEast (右下角)。 | |
/dx/<distanceX> | 横轴边距,单位:像素(px),默认值为10。 | |
/dy/<distanceY> | 纵轴边距,单位:像素(px),默认值为10。 | |
/ws/<watermarkScale> | 水印图片自适应原图的短边比例,取值范围0-1。 |
NorthWest | North | NorthEast
| |
| |
--------------+----------------+--------------
| |
West | Center | East
| |
--------------+----------------+--------------
| |
| |
SouthWest | South | SouthEast
请求语法
GET <imageDownloadURI>?<接口规格> HTTP/1.1
Host: <imageDownloadHost>
头部信息
头部名称 | 必填 | 说明 |
---|---|---|
Host | 是 | 下载服务器域名,可为七牛三级域名或自定义二级域名,参考七牛自定义域名绑定流程。 |
响应语法
HTTP/1.1 200 OK
Content-Type: <imageMimeType>
<imageBinaryData>
头部信息
头部名称 | 必填 | 说明 |
---|---|---|
Content-Type | 是 | MIME类型,成功时为图片的MIME类型,失败时为application/json 。 |
Cache-Control | 缓存控制,失败时为no-store ,不缓存。 |
响应内容
如果请求成功,返回图片的二进制数据。
如果请求失败,返回包含如下内容的 JSON 字符串 (已格式化,便于阅读):
{
"code": <HttpCode int>,
"error": "<ErrMsg string>",
}
字段名称 | 必填 | 说明 |
---|---|---|
code | 是 | HTTP状态码,请参考响应状态 |
error | 是 | 与HTTP状态码对应的消息文本 |
响应状态码
HTTP状态码 | 含义 |
---|---|
200 | 添加水印成功 |
400 | 请求报文格式错误 |
404 | 资源不存在 |
599 | 服务端操作失败。 如遇此错误,请将完整错误信息(包括所有HTTP响应头部)通过邮件发送错误日志)给我们。 |
https://olhvkds73.qnssl.com/logo.png
ImageURL = "https://olhvkds73.qnssl.com/logo.png"
encodedImageURL = urlsafe_base64_encode(ImageURL)
dissolve=50
)gravity=SouthEast
)
注意:接口规格不含任何空格与换行符。
watermark/2
/text/<encodedText>
/font/<encodedFontName>
/fontsize/<fontSize>
/fill/<encodedTextColor>
/dissolve/<dissolve>
/gravity/<gravity>
/dx/<distanceX>
/dy/<distanceY>
参数名称 | 必填 | 说明 |
---|---|---|
/text/<encodedText> | 是 | 水印文字内容(经过URL安全的Base64编码) |
/font/<encodedFontName> | 水印文字字体(经过URL安全的Base64编码),默认为黑体,详见支持字体列表 注意:中文水印必须指定中文字体。 | |
/fontsize/<fontSize> | 水印文字大小,单位: 缇 ,等于1/20磅,默认值是240缇,参考DPI为72。 | |
/fill/<encodedTextColor> | 水印文字颜色,RGB格式,可以是颜色名称(例如 red)或十六进制(例如 #FF0000),参考RGB颜色编码表,默认为黑色。经过URL安全的Base64编码。 | |
/dissolve/<dissolve> | 透明度,取值范围1-100,默认值100(完全不透明)。 | |
/gravity/<gravity> | 水印位置,参考水印位置参数表,默认值为SouthEast (右下角)。 | |
/dx/<distanceX> | 横轴边距,单位:像素(px),默认值为10。 | |
/dy/<distanceY> | 纵轴边距,单位:像素(px),默认值为10。 |
请求语法
GET <imageDownloadURI>?<接口规格> HTTP/1.1
Host: <imageDownloadHost>
头部信息
头部名称 | 必填 | 说明 |
---|---|---|
Host | 是 | 下载服务器域名,可为七牛三级域名或自定义二级域名,参考七牛自定义域名绑定流程。 |
响应语法
HTTP/1.1 200 OK
Content-Type: <imageMimeType>
<imageBinaryData>
头部信息
头部名称 | 必填 | 说明 |
---|---|---|
Content-Type | 是 | MIME类型,成功时为图片的MIME类型,失败时为application/json 。 |
Cache-Control | 缓存控制,失败时为no-store ,不缓存。 |
响应内容
如果请求成功,返回图片的二进制数据。
如果请求失败,返回包含如右内容的JSON字符串(已格式化,便于阅读):
{
"code": <httpCode int>,
"error": "<errMsg string>",
}
字段名称 | 必填 | 说明 |
---|---|---|
code | 是 | HTTP状态码,请参考响应状态。 |
error | 是 | 与HTTP状态码对应的消息文本 |
响应状态码
HTTP状态码 | 含义 |
---|---|
200 | 添加水印成功 |
400 | 请求报文格式错误 |
404 | 资源不存在 |
599 | 服务端操作失败。 如遇此错误,请将完整错误信息(包括所有HTTP响应头部)通过邮件发送错误日志给我们。 |
通过调试命令参数的方式,对使用者并不方便。我们提供了图片处理的图形化编辑界面,通过以下方式进入:
2、 选择常用场景,并开始编辑图片处理命令
七牛云存储
宋体
1000
white
dissolve=85
)gravity=SouthEast
)
本接口用于同时在一个原图上打多个不同类型的水印。
注意1:接口规格不含任何空格与换行符。
注意2:省略号表示可以附加多个规格参数。
注意3:图片水印与文字水印的规格可以混写,按给定顺序处理。
watermark/3
/text/<textWaterMarkParams1>
/image/<imageWaterMarkParams1>
/image/<imageWaterMarkParams2>
/text/<textWaterMarkParams2>
...
参数名称 | 必填 | 说明 |
---|---|---|
/image/<imageWaterMarkParams> | 参考图片水印参数 | |
/text/<textWaterMarkParams> | 参考文字水印参数 |
请求语法
GET <imageDownloadURI>?<接口规格> HTTP/1.1
Host: <imageDownloadHost>
请求头部
头部名称 | 必填 | 说明 |
---|---|---|
Host | 是 | 下载服务器域名,可为七牛三级域名或自定义二级域名,参考七牛自定义域名绑定流程。 |
响应语法
HTTP/1.1 200 OK
Content-Type: <imageMimeType>
<imageBinaryData>
头部信息
头部名称 | 必填 | 说明 |
---|---|---|
Content-Type | 是 | MIME类型,成功时为图片的MIME类型,失败时为application/json 。 |
Cache-Control | 缓存控制,失败时为no-store ,不缓存。 |
响应内容
如果请求成功,返回图片的二进制数据。
如果请求失败,返回包含如下内容的JSON字符串(已格式化,便于阅读):
{
"code": <httpCode int>,
"error": "<errMsg string>",
}
字段名称 | 必填 | 说明 |
---|---|---|
code | 是 | HTTP状态码,请参考响应状态 |
error | 是 | 与HTTP状态码对应的消息文本 |
响应状态码
HTTP状态码 | 含义 |
---|---|
200 | 添加水印成功 |
400 | 请求报文格式错误 |
404 | 资源不存在 |
599 | 服务端操作失败。 如遇此错误,请将完整错误信息(包括所有HTTP响应头部)通过邮件发送给我们。 |
注意:
watermark
生成的图片会被七牛云存储缓存以加速下载,但不会持久化。需要持久化的缩略图,请参考持久化数据处理和saveas。qrsctl login <email> <password>
qrsctl style <bucket> watermarked.jpg watermark/2/text/<encodedText>
qrsctl separator <bucket> -
此时,如下两个URL等价:
http://<Domain>/<Key>?watermark/2/text/<encodedText>
http://<Domain>/<Key>-watermarked.jpg
设置原图保护后,原图不能访问:
http://<Domain>/<Key>
同时也禁止根据图像处理API对原图进行参数枚举:
http://<Domain>/<Key>?watermark/2/text/<encodedText>
此时只能访问指定规格的图片资源:
http://<Domain>/<Key>-watermarked.jpg
附件 | 大小 |
---|---|
七牛上传图片和视频加水印.zip | 17.6 KB |