您可以通过图片水印参数,为您存储在OSS中的图片文件增加水印文字或水印图。本文介绍为图片添加水印时所用到的参数及示例。
注意事项
- 图片水印只能使用当前存储空间内的图片,网络或本地图片需上传至当前存储空间内方可使用。
- 图片水印目前仅支持JPG、PNG、BMP、WebP、TIFF格式。
- 单张图片最多支持添加3张不同的图片水印,且各个图片水印的位置不能完全重叠。
- 文字水印暂不支持繁体中文。
参数说明
操作名称:watermark
相关参数如下:
- 基础参数
参数 是否必须 描述 取值范围 t 否 指定图片水印或水印文字的透明度。 [0,100] 默认值:100, 表示透明度100%(不透明)。
g 否 指定水印在图片中的位置。 - nw:左上
- north:中上
- ne:右上
- west:左中
- center:中部
- east:右中
- sw:左下
- south:中下
- se:右下
x 否 指定水印的水平边距, 即距离图片边缘的水平距离。这个参数只有当水印位置是左上、左中、左下、右上、右中、右下才有意义。 [0,4096] 默认值:10
单位:像素(px)
y 否 指定水印的垂直边距,即距离图片边缘的垂直距离, 这个参数只有当水印位置是左上、中上、右上、左下、中下、右下才有意义。 [0,4096] 默认值:10
单位:px
voffset 否 指定水印的中线垂直偏移。当水印位置在左中、中部、右中时,可以指定水印位置根据中线往上或者往下偏移。 [-1000,1000] 默认值:0
单位:px
水平边距、垂直边距、中线垂直偏移不仅可以调节水印在图片中的位置,当图片存在多重水印时,还可以调节水印在图中的布局。
区域数值以及每个区域对应的基准点如下图所示。 - 图片水印参数
参数 是否必须 描述 取值范围 image 是 用于指定作为图片水印Object的完整名称,Object名称需进行Base64编码。详情请参见水印编码。 例如,作为图片水印的Object为Bucket内image目录下的panda.png,则需要编码的内容为image/panda.png,编码后的字符串为
aW1hZ2UvcGFuZGEucG5n
。说明 水印图片只能使用当前存储空间内的Object。Base64编码后的字符串。 - 水印图片预处理参数
您可以使用图片缩放、自定义裁剪、索引切割、圆角矩形及图片旋转操作中的所有参数对水印图片进行预处理。此外,水印图片在进行缩放操作时,还额外支持参数P:
参数 描述 取值范围 P 指定图片水印按照主图的比例进行缩放,取值为缩放的百分比。如设置参数值为10,如果主图为100×100, 则图片水印大小为10×10。当主图变成了200×200,则图片水印大小为20×20。 [1,100] - 文字水印参数
参数 是否必须 描述 取值范围 text 是 指定文字水印的文字内容,文字内容需进行Base64编码。详情请参见水印编码。 Base64编码后的字符串,最大长度为64个字符(最多21个汉字)。 type 否 指定文字水印的字体,字体名称需进行Base64编码。 支持的字体及字体编码详情请参见文字类型编码对应表。 默认值:wqy-zenhei( 编码后的值为d3F5LXplbmhlaQ)
color 否 指定文字水印的文字颜色,参数值为RGB颜色值。 RGB颜色值,例如:000000表示黑色,FFFFFF表示白色。 默认值:000000(黑色)
size 否 指定文字水印的文字大小。 (0,1000] 默认值:40
单位:px
shadow 否 指定文字水印的阴影透明度。 [0,100] 默认值:0,表示没有阴影。
rotate 否 指定文字顺时针旋转角度。 [0,360] 默认值:0,表示不旋转。
fill 否 指定是否将文字水印铺满原图。 0、1 - 1:表示将文字水印铺满原图。
- 0(默认值):表示不将文字水印铺满全图。
type参数中可选的文字类型及编码如下表所示。
参数值 中文含义 编码值 wqy-zenhei 文泉驿正黑 d3F5LXplbmhlaQ wqy-microhei 文泉微米黑 d3F5LW1pY3JvaGVp fangzhengshusong 方正书宋 ZmFuZ3poZW5nc2h1c29uZw fangzhengkaiti 方正楷体 ZmFuZ3poZW5na2FpdGk fangzhengheiti 方正黑体 ZmFuZ3poZW5naGVpdGk fangzhengfangsong 方正仿宋 ZmFuZ3poZW5nZmFuZ3Nvbmc droidsansfallback DroidSansFallback ZHJvaWRzYW5zZmFsbGJhY2s - 图文混合水印参数
参数 是否必须 描述 取值范围 order 否 指定文字和图片水印的前后顺序。 0、1 - 0(默认值):表示图片水印在前。
- 1:表示文字水印在前。
align 否 指定文字水印和图片水印的对齐方式。 0、1、2 - 0:表示文字水印和图片水印上对齐。
- 1:表示文字水印和图片水印中对齐。
- 2(默认值):表示文字水印和图片水印下对齐。
interval 否 指定文字水印和图片水印间的间距。 [0,1000] 默认值:0
单位:px
水印编码
在添加水印操作中,文字水印的文字内容、文字颜色、文字字体、图片水印的水印图片名称等参数需要进行URL安全的Base64编码。编码步骤如下:
- 将内容编码成Base64。
- 将结果中的部分编码替换。
- 将结果中的加号(+)替换成短划线(-)。
- 将结果中的正斜线(/)替换成下划线(_)。
- 将结果中尾部的等号(=)省略。
推荐通过URL-safe Baes64编码工具对文字水印的文字内容、文字颜色、文字字体、图片水印的水印图片名称等参数进行编码。
示例一:添加文字水印
为example.jpg图片添加文字水印示例如下:
- 快速添加Hello World的文字水印
对文字水印的内容Hello World进行URL安全的Base64位编码。具体操作,请参见 水印编码。编码结果为
SGVsbG8gV29ybGQ
,图片处理URL为 https://image-demo-oss-zhangjiakou.oss-cn-zhangjiakou.aliyuncs.com/example.jpg?x-oss-process=image/watermark,text_SGVsbG8gV29ybGQ。 - 添加文字水印时配置多个图片处理参数
为example.jpg图片添加Hello World的文字水印的同时,需要对水印文字以及原图做如下相应处理:
- 将example.jpg缩略为宽高300:
resize,w_300,h_300
- 水印文字字体为文泉驿正黑:
type_d3F5LXplbmhlaQ
(d3F5LXplbmhlaQ是文泉驿正黑经过Base64编码后的值) - 水印内容为“Hello World”:
text_SGVsbG8gV29ybGQ
- 水印文字颜色为白色、字体大小为30:
color_FFFFFF,size_30
- 文字阴影透明度为50%:
shadow_50
- 水印文字位置是右下、水平边距10、中线垂直偏移10:
g_se,x_10,y_10
- 将example.jpg缩略为宽高300:
示例二:添加图片水印
为example.jpg图片添加图片水印示例如下:
- 快速添加名为panda.png的水印图片
对水印图片名称panda.png进行URL安全的Base64位编码,编码结果为
cGFuZGEucG5n
,图片处理URL为 https://image-demo-oss-zhangjiakou.oss-cn-zhangjiakou.aliyuncs.com/example.jpg?x-oss-process=image/watermark,image_cGFuZGEucG5n。 - 添加图片水印时配置多个图片处理参数
为example.jpg图片添加图片水印panda.png的同时,需要对图片水印以及原图做如下相应处理:
- 将example.jpg缩略为宽高300:
resize,w_300,h_300
- 将example.jpg图片质量设为90%:
quality,q_90
- 添加水印图片panda.png:
watermark,image_cGFuZGEucG5n
(cGFuZGEucG5n是panda.png进行Base64编码后的值) - 水印图片透明度90%:
t_90
- 水印图片位于主图的右下方、水平边距10、中线垂直偏移10:
g_se,x_10,y_10
- 将example.jpg缩略为宽高300:
- 对图片水印进行预处理后配置多个图片处理参数
为example.jpg图片添加图片水印panda.png的同时,需要对图片水印以及原图做如下相应处理:
- 将example.jpg缩略为宽300:
resize,w_300
- 将水印图片panda.png进行预处理(缩放30%):
image_cGFuZGEucG5nP3gtb3NzLXByb2Nlc3M9aW1hZ2UvcmVzaXplLFBfMzA
(cGFuZGEucG5nP3gtb3NzLXByb2Nlc3M9aW1hZ2UvcmVzaXplLFBfMzA
为panda.png?x-oss-process=image/resize,P_30
经过Base64编码后的值) - 水印的透明度为90%、位置是右下、水平边距是10、中线垂直偏移是10:
t_90,g_se,x_10,y_10
- 将example.jpg缩略为宽300:
示例三:添加图片和文字混合水印
为example.jpg图片添加图片和文字混合水印的示例如下:
- 快速添加panda.png图片水印和Hello World文字水印
结合以上示例中panda.png以及Hello World的编码结果,可得出图片处理的URL为 https://image-demo-oss-zhangjiakou.oss-cn-zhangjiakou.aliyuncs.com/example.jpg?x-oss-process=image/watermark,image_cGFuZGEucG5nP3gtb3NzLXByb2Nlc3M9aW1hZ2UvcmVzaXplLFBfMzA,text_SGVsbG8gV29ybGQ。
- 添加多个图片和文字水印
为example.jpg图片添加2个不同的文本水印(Watermark 1和Watermark 2)和3个图片水印(Jellyfish.jpg、Koala.jpg以及Tulips.jpg)。添加多个水印时,需使用正斜线(/)将不同的水印操作隔开。
- 添加Jellyfish.jpg图片水印,对图片水印进行预处理(缩放20%),图片水印位于主图的左上角,水平边距10,中线垂直偏移10。图片参数处理结果为
watermark,image_cGljcy9KZWxseWZpc2guanBnP3gtb3NzLXByb2Nlc3M9aW1hZ2UvcmVzaXplLFBfMjA,g_nw,x_10,y_10
,其中cGljcy9KZWxseWZpc2guanBnP3gtb3NzLXByb2Nlc3M9aW1hZ2UvcmVzaXplLFBfMjA
为Jellyfish.jpg图片水印预处理后经过Base64编码后的值。 - 添加Koala.jpg图片水印,对图片水印进行预处理(缩放20%),图片水印位于主图右下角,水平边距10,中线垂直偏移10。图片参数处理结果为
watermark,image_cGljcy9Lb2FsYS5qcGc_eC1vc3MtcHJvY2Vzcz1pbWFnZS9yZXNpemUsUF8yMA,g_se,x_10,y_10
,其中cGljcy9Lb2FsYS5qcGc_eC1vc3MtcHJvY2Vzcz1pbWFnZS9yZXNpemUsUF8yMA
为Koala.jpg图片水印预处理后经过Base64编码后的值。 - 添加Tulips.jpg图片水印,对图片水印进行预处理(缩放20%),图片水印位于主图左中部,水平边距10,中线垂直偏移10。图片参数处理结果为
watermark,image_cGljcy9UdWxpcHMuanBnP3gtb3NzLXByb2Nlc3M9aW1hZ2UvcmVzaXplLFBfMjA,g_west,x_10,y_10
,其中cGljcy9UdWxpcHMuanBnP3gtb3NzLXByb2Nlc3M9aW1hZ2UvcmVzaXplLFBfMjA
为Tulips.jpg图片水印预处理后经过Base64编码后的值。 - 添加Watermark 1文字水印,字体大小为20,水印文字位于主图的右上角,水平边距10、中线垂直偏移200。图片参数处理结果为
watermark,text_V2F0ZXJtYXJrIDE,g_ne,size_20,x_10,y_200
,其中V2F0ZXJtYXJrIDE
为Watermark 1经过Base64编码后的值。 - 添加Watermark 2文字水印,字体大小为20,颜色为深蓝色,水印文字位于主图的左下角,水平边距100、中线垂直偏移50。图片参数处理结果为
watermark,text_V2F0ZXJtYXJrIDI,color_0000b7,size_20,g_sw,x_100,y_50
,其中V2F0ZXJtYXJrIDI
为Watermark 2经过Base64编码后的值。
- 添加Jellyfish.jpg图片水印,对图片水印进行预处理(缩放20%),图片水印位于主图的左上角,水平边距10,中线垂直偏移10。图片参数处理结果为
常见问题
如何使用网络图片或本地图片作为水印图片?
通过OSS的图片处理为图片添加图片水印时,仅可以使用相同存储空间内的图片作为水印图片。若您希望使用网络图片或本地图片作为水印图片,需要先将图片上传到原图所在存储空间,之后再使用上传的图片作为水印图片处理原图。