水印操作可以在图片上设置另外一张图片或者文字做为水印。
参数
操作名称:watermark
基础参数
注意事项
- 水平边距、垂直边距、中线垂直偏移不仅可以调节水印在图片中的位置,而且当图片存在多重水印时,也可以调节两张水印在图中的布局。
- 用到的URL安全的Base64位编码可以参考文档下方的解释。
- 区域数值以及每个区域对应的基准点如下图。
图片水印参数
水印图片预处理
用户在打水印时,可以对水印图片进行预处理,支持的预处理操作有:图片缩放,图片裁剪(不支持内切圆),图片旋转(具体内容请直接查看文档相关章节)。在“resize”操作下还额外支持一个参数:P(大写P),表示水印图片按主图的比例进行处理,取值范围为[1, 100],表示百分比
[backcolor=transparent]预处理示例
设置了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,需要缩略,再打上述水印的示例:
- [backcolor=transparent]http[backcolor=transparent]:[backcolor=transparent]//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缩略,再打上上述水印的示例:
http://image-demo.img-cn-hangzhou.aliyuncs.com/example.jpg?x-oss-process=image/resize,w_300/watermark,image_cGFuZGEucG5nP3gtb3NzLXByb2Nlc3M9aW1hZ2UvcmVzaXplLFBfMzA,t_90,g_se,x_10,y_10
文字水印参数
[backcolor=transparent]文字类型编码对应表
文图混合
URL安全的Base64位编码
在图片处理服务里会有很多参数需要变成Base64位编码,参考
RFC4648。注意这里的URL 安全Base64位编码只是用在水印操作某些特定参数(文字水印的文字内容,文字颜色,文字字体及图片水印的水印object)里,不要将其用来签名字符串(Signature)的内容。编码的格式是:
- 先将内容编码成Base64结果;
- 将结果中的加号”+”替换成中划线“-“;
- 将结果中的斜杠”/”替换成下划线”_”;
- 将结果中尾部的“=”号全部保留;
以Python为例子
- [backcolor=transparent]import[backcolor=transparent] base64
- [backcolor=transparent]input[backcolor=transparent]=[backcolor=transparent]'wqy-microhei'
- [backcolor=transparent]print[backcolor=transparent]([backcolor=transparent]base64[backcolor=transparent].[backcolor=transparent]urlsafe_b64encode[backcolor=transparent]([backcolor=transparent]input[backcolor=transparent]))
示例
- 下面URL的含义,是example.jpg加上水印文件是 :panda.png (panda.png 经过URL安全base64编码后是:cGFuZGEucG5n)
http://image-demo.img-cn-hangzhou.aliyuncs.com/example.jpg?x-oss-process=image/resize,w_300,h_300/auto-orient,1/quality,q_90/format,jpg/watermark,image_cGFuZGEucG5n,t_90,g_se,x_10,y_10
- 对panda.png按宽度是50缩放。 那么水印文件是:panda.png?x-oss-process=image/resize,w_50 (经过URL安全base64编码后是:cGFuZGEucG5nP3gtb3NzLXByb2Nlc3M9aW1hZ2UvcmVzaXplLHdfNTA=)
http://image-demo.img-cn-hangzhou.aliyuncs.com/example.jpg?x-oss-process=image/resize,w_300,h_300/auto-orient,1/quality,q_90/format,jpg/watermark,image_cGFuZGEucG5nP3gtb3NzLXByb2Nlc3M9aW1hZ2UvcmVzaXplLHdfNTA=,t_90,g_se,x_10,y_10
http://image-demo.img-cn-hangzhou.aliyuncs.com/example.jpg?x-oss-process=image/resize,w_300,h_300/watermark,type_d3F5LXplbmhlaQ,size_30,text_SGVsbG8g5Zu-54mH5pyN5YqhIQ
- 字体是文泉驿正黑,字体大小是40, 颜色是白色(#FFFFFF), 文字阴影是50, 文字水印内容是:Hello, 图片服务!, 水印位置是:右下,水平边距是:10, 中线垂直偏移是:10
http://image-demo.img-cn-hangzhou.aliyuncs.com/example.jpg?x-oss-process=image/resize,w_300,h_300/watermark,type_d3F5LXplbmhlaQ,size_30,text_SGVsbG8g5Zu-54mH5pyN5YqhIQ,color_FFFFFF,shadow_50,t_100,g_se,x_10,y_10
- 文图混合水印,文字内容是:Hello, 图片服务! 阴影是50, 位置在右下角,图片object 是panda.png。 水平边距和垂直边距都是10, 水印透明是100, 排版方式是图片前, 对齐方式是下对齐,间距是10
http://image-demo.img-cn-hangzhou.aliyuncs.com/example.jpg?x-oss-process=image/resize,w_300,h_300/auto-orient,1/quality,q_90/format,jpg/watermark,image_cGFuZGEucG5nP3gtb3NzLXByb2Nlc3M9aW1hZ2UvcmVzaXplLFBfMjU,type_d3F5LXplbmhlaQ,size_30,text_SGVsbG8g5Zu-54mH5pyN5YqhIQ,color_FFFFFF,shadow_50,order_0,align_2,interval_10,t_100,g_se,x_10,y_10