图片水印__图片处理指南_对象存储 OSS-阿里云
水印操作可以在图片上设置另外一张图片或者文字做为水印。
参数
操作名称:watermark
基础参数
名称 | 描述 | 参数类型 |
---|---|---|
t | 参数意义:透明度, 如果是图片水印,就是让图片变得透明,如果是文字水印,就是让水印变透明。 默认值:100, 表示 100%(不透明) 取值范围: [0-100] |
可选参数 |
g | 参数意义:位置,水印打在图的位置,详情参考下方区域数值对应图。 取值范围:[nw,north,ne,west,center,east,ne,south] |
可选参数 |
x | 参数意义:水平边距, 就是距离图片边缘的水平距离, 这个参数只有当水印位置是左上,左中,左下, 右上,右中,右下才有意义 默认值:10 取值范围:[0 – 4096] 单位:像素(px) |
可选参数 |
y | 参数意义:垂直边距, 就是距离图片边缘的垂直距离, 这个参数只有当水印位置是左上,中上, 右上,左下,中下,右下才有意义 默认值:10 取值范围:[0 – 4096] 单位:像素(px) |
可选参数 |
rotate | 参数意义:旋转角度,图片按顺时针旋转的角度 取值范围:[0, 360] |
可选参数 |
fill | 参数意义:进行水印铺满的效果; 取值范围:[0,1],1表示铺满,0表示效果无效 |
可选参数 |
voffset | 参数意义: 中线垂直偏移,当水印位置在左中,中部,右中时,可以指定水印位置根据中线往上或者往下偏移。 默认值:0 取值范围:[-1000, 1000] 单位:像素(px) |
可选参数 |
注意事项
- 水平边距、垂直边距、中线垂直偏移不仅可以调节水印在图片中的位置,而且当图片存在多重水印时,也可以调节两张水印在图中的布局。
- 用到的URL安全的Base64位编码可以参考文档下方的解释。
- 区域数值对应图
图片水印参数
名称 | 描述 | 参数类型 |
---|---|---|
image | 参数意义: 水印图片的object名字(必须编码) 注意:内容必须是URL安全base64编码 encodedObject = url_safe_base64_encode(object) 如object为”panda.png”, 编码过后的内容为”cGFuZGEucG5n” |
必选参数 |
水印图片预处理
用户在打水印时,可以对水印图片进行预处理,支持的预处理操作有:图片缩放,图片裁剪(不支持内切圆),图片旋转(具体内容请直接查看文档相关章节)。在“resize”操作下还额外支持一个参数:P(大写P),表示水印图片按主图的比例进行处理,取值范围为[1, 100],表示百分比
预处理示例
设置了P_10, 当主图是100x100, 水印图片大小就为10x10, 当主图变成了200x200,水印图片大小就为20x20。如果生成的图片大小不一样,而使用相同的水印处理参数,就会导致一些小图,水印图片过大。或者一些大图,水印图片过小。增加P参数,就可以解决这个问题。采用P参数,IMG会根据主图的大小来动态调整水印图片的大小。
对panda.png按30%缩放。 那么水印文件是:panda.png?x-oss-process=image/resize,P_30 (经过URL安全base64编码后是:cGFuZGEucG5nP3gtb3NzLXByb2Nlc3M9aW1hZ2UvcmVzaXplLFBfMzA)
如果水印操作是:watermark=1&object=cGFuZGEucG5nQDMwUA&t=90&p=9&x=10&y=10 (右下角打水印)原图按宽度是400,需要缩略,再打上述水印的示例:
https://image-demo.img-cn-hangzhou.aliyuncs.com/example.jpg?x-oss-process=image/resize,w_400/watermark,image_cGFuZGEucG5nP3gtb3NzLXByb2Nlc3M9aW1hZ2UvcmVzaXplLFBfMzA,t_90,g_se,x_10,y_10
如果原图按宽度300缩略,再打上上述水印的示例:
文字水印参数
名称 | 描述 | 参数类型 |
---|---|---|
text | 参数意义:表示文字水印的文字内容(必须编码) 注意:必须是URL安全base64编码 encodeText = url_safe_base64_encode(fontText) 最大长度为64个字符(即支持汉字最多20个左右) |
必选参数 |
type | 参数意义:表示文字水印的文字类型(必须编码) 注意:必须是URL安全base64编码 encodeText = url_safe_base64_encode(fontType) 取值范围:见下表(文字类型编码对应表) 默认值:wqy-zenhei ( 编码后的值:d3F5LXplbmhlaQ) |
可选参数 |
color | 参数意义:文字水印文字的颜色(必须编码) 注意:参数必须是URL安全base64编码 EncodeFontColor = url_safe_base64_encode(fontColor) 参数的构成必须是:# + 六个十六进制数 如:#000000表示黑色。 #是表示前缀,000000每两位构成RGB颜色, #FFFFFF表示的是白色 默认值:#000000黑色 base64编码后值:IzAwMDAwMA |
可选参数 |
size | 参数意义:文字水印文字大小(px) 取值范围:(0,1000] 默认值:40 |
可选参数 |
shadow | 参数意义:文字水印的阴影透明度 取值范围:(0,100] |
可选参数 |
rotate | 参数意义:文字顺时针旋转角度 取值范围:[0,360] |
可选参数 |
文字类型编码对应表
参数值 | 中文意思 | URL安全base64编码后的值 | 备注 |
---|---|---|---|
wqy-zenhei | 文泉驿正黑 | d3F5LXplbmhlaQ== | 根据RFC,可省略填充符=变为d3F5LXplbmhlaQ |
wqy-microhei | 文泉微米黑 | d3F5LW1pY3JvaGVp | |
fangzhengshusong | 方正书宋 | ZmFuZ3poZW5nc2h1c29uZw== | 根据RFC,可省略填充符=变为ZmFuZ3poZW5nc2h1c29uZw |
fangzhengkaiti | 方正楷体 | ZmFuZ3poZW5na2FpdGk= | 根据RFC,可省略填充符=变为ZmFuZ3poZW5na2FpdGk |
fangzhengheiti | 方正黑体 | ZmFuZ3poZW5naGVpdGk= | 根据RFC,可省略填充符=变为ZmFuZ3poZW5naGVpdGk |
fangzhengfangsong | 方正仿宋 | ZmFuZ3poZW5nZmFuZ3Nvbmc= | 根据RFC,可省略填充符=变为ZmFuZ3poZW5nZmFuZ3Nvbmc |
droidsansfallback | DroidSansFallback | ZHJvaWRzYW5zZmFsbGJhY2s= | 根据RFC,可省略填充符=变为ZHJvaWRzYW5zZmFsbGJhY2s |
文图混合
名称 | 描述 | 参数类型 |
---|---|---|
order | 参数意义: 文字,图片水印前后顺序 取值范围:[0, 1] order = 0 图片在前(默认值); order = 1 文字在前。 |
可选参数 |
align | 参数意义:文字、图片对齐方式 取值范围:[0, 1, 2] align = 0 上对齐(默认值) align = 1 中对齐 align = 2 下对齐 |
可选参数 |
interval | 参数意义:文字和图片间的间距 取值范围: [0, 1000] | 可选参数 |
URL安全的Base64位编码
在图片处理服务里会有很多参数需要变成Base64位编码,参考RFC4648。注意这里的URL 安全Base64位编码只是用在水印操作某些特定参数(文字水印的文字内容,文字颜色,文字字体及图片水印的水印object)里,不要将其用来签名字符串(Signature)的内容。编码的格式是:
- 先将内容编码成Base64结果;
- 将结果中的加号”+”替换成中划线“-“;
- 将结果中的斜杠”/”替换成下划线”_”;
- 将结果中尾部的“=”号全部保留;
以Python为例子
import base64
input='wqy-microhei'
print(base64.urlsafe_b64encode(input))
示例
- 下面URL的含义,是example.jpg加上水印文件是 :panda.png (panda.png 经过URL安全base64编码后是:cGFuZGEucG5n)
- 对panda.png按宽度是50缩放。 那么水印文件是:panda.png?x-oss-process=image/resize,w_50 (经过URL安全base64编码后是:cGFuZGEucG5nP3gtb3NzLXByb2Nlc3M9aW1hZ2UvcmVzaXplLHdfNTA=)
- 最简单水印:文字内容是:Hello, 图片服务
- 字体是文泉驿正黑,字体大小是40, 颜色是白色(#FFFFFF), 文字阴影是50, 文字水印内容是:Hello, 图片服务!, 水印位置是:右下,水平边距是:10, 中线垂直偏移是:10
- 文图混合水印,文字内容是:Hello, 图片服务! 阴影是50, 位置在右下角,图片object 是panda.png。 水平边距和垂直边距都是10, 水印透明是100, 排版方式是图片前, 对齐方式是下对齐,间距是10
最后更新:2016-11-23 16:04:20
上一篇:
质量变换__格式转换_图片处理指南_对象存储 OSS-阿里云
下一篇:
获取图片主色调__获取图片信息_图片处理指南_对象存储 OSS-阿里云
常见错误说明__附录_大数据计算服务-阿里云
发送短信接口__API使用手册_短信服务-阿里云
接口文档__Android_安全组件教程_移动安全-阿里云
运营商错误码(联通)__常见问题_短信服务-阿里云
设置短信模板__使用手册_短信服务-阿里云
OSS 权限问题及排查__常见错误及排除_最佳实践_对象存储 OSS-阿里云
消息通知__操作指南_批量计算-阿里云
设备端快速接入(MQTT)__快速开始_阿里云物联网套件-阿里云
查询API调用流量数据__API管理相关接口_API_API 网关-阿里云
使用STS访问__JavaScript-SDK_SDK 参考_对象存储 OSS-阿里云