本文介绍为图片添加水印时所用到的参数及示例。

注意事项

  • 图片上的水印图片只能使用当前存储空间内的图片,网络或本地图片需上传至当前存储空间内方可使用。
  • 水印图片目前仅支持PNG、JPG和WebP格式。
  • 文字水印暂不支持繁体中文。
  • 在为图片添加多个水印时,需要注意以下内容:
    • 一张图片上,最多支持3张不同的水印图片做水印。
    • 同一张水印图片可以重复使用,但必须放在不同位置。
    • 各个水印位置,不能完全重叠。

URL安全的Base64位编码

在添加水印操作中,有很多参数需要进行Base64位编码,详细信息请参考RFC4648。注意这里的URL安全Base64位编码只是应用在水印操作某些特定参数(文字水印的文字内容、文字颜色、文字字体及图片水印的水印图片名称)中,请勿将其用在签名字符串(Signature)的内容里。编码格式为:

  • 先将内容编码成Base64。
  • 将结果中的加号(+)替换成短划线(-)。
  • 将结果中的正斜线(/)替换成下划线(_)。
  • 将结果中尾部的等号(=)全部保留。

参数说明

操作名称: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

    说明
    • 水平边距、垂直边距、中线垂直偏移不仅可以调节水印在图片中的位置,而且当图片存在多重水印时,也可以调节两张水印在图中的布局。
    • 区域数值以及每个区域对应的基准点如下图。origin
  • 图片水印参数
    参数 描述 取值范围
    image

    必选参数,用于指定作为水印图片的Object名称,参数值为Object名称进行Base64编码后的字符串。

    例如,作为水印图片的Object为Bucket根目录下的panda.png,则编码过后的字符串为cGFuZGEucG5n

    说明
    • 水印图片只能使用当前存储空间内的Object。
    • 用于编码的必须为包含前缀的完整Object名称。

      例如,作为水印图片的Object为Bucket内image文件夹下的panda.png,则用于编码的Object名称为image/panda.png,编码过后的字符串为aW1hZ2UvcGFuZGEucG5n

    Base64编码后的字符串。
  • 文字水印参数
    参数 描述 取值范围
    text

    必选参数,指定文字水印的文字内容。参数值为文字内容进行Base64编码后的字符串。

    说明
    • 文字水印内容必须是通过以下方法进行Base64编码后的字符串: encodeText = url_safe_base64_encode(fontText)
    • 最大长度为64个字符(即支持汉字最多20个左右)。
    Base64编码后的字符串。
    type

    可选参数,指定文字水印的文字类型。

    说明 文字水印的文字类型必须是通过以下方法进行Base64编码后的字符串:encodeText = url_safe_base64_encode(fontType)
    Base64编码后的字符串,详情请参见文字类型编码对应表

    默认值:wqy-zenhei( 编码后的值:d3F5LXplbmhlaQ)

    color

    可选参数,指定文字水印的文字颜色。

    六位十六进制数,每两位构成RGB颜色。例如:000000表示黑色,FFFFFF表示白色。

    默认值:000000(黑色)

    size

    可选参数,指定文字水印的文字大小(单位为px)。

    (0,1000]

    默认值:40

    单位:px

    shadow

    可选参数,指定文字水印的阴影透明度。

    [0,100]
    rotate

    可选参数,指定文字顺时针旋转角度。

    [0,360]
    fill

    可选参数,指定是否将水印铺满原图。

    0、1
    • 1:表示将水印铺满原图。
    • 0:表示不将水印铺满全图。

    type参数中可选的文字类型编码如下表所示。

    参数值 中文含义 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
    • 0(默认值):表示图片水印在前。
    • 1:表示文字水印在前。
    align

    可选参数,指定文字水印和图片水印的对齐方式。

    0、1、2
    • 0(默认值):表示文字水印和图片水印上对齐。
    • 1:表示文字水印和图片水印中对齐。
    • 2:表示文字水印和图片水印下对齐。
    interval

    可选参数,指定文字水印和图片水印间的间距。

    [0,1000]
  • 水印图片预处理参数

    对水印图片进行预处理时,可以使用图片缩放图片裁剪(内切圆除外)及图片旋转操作中的所有参数。此外,缩放操作还额外支持一个参数P,说明如下:

    参数 描述 取值范围
    P 指定水印图片按照主图的比例进行缩放,取值为缩放的百分比。如设置参数值为10,如果主图为100x100, 水印图片大小就为10x10。当主图变成了200x200,水印图片大小就为20x20。 [1,100]

示例

  • 将主图缩略为宽高300,质量为90%,并加上位于Bucket根目录下的水印图片panda.png(经过URL安全Base64编码后是:cGFuZGEucG5n)。水印的透明度为90,位置是右下,水平边距是10,中线垂直偏移是10。

    处理后的URL为:<原图URL>?x-oss-process=image/resize,w_300,h_300/quality,q_90/watermark,image_cGFuZGEucG5n,t_90,g_se,x_10,y_10

  • 使用 panda.png作为水印图片,添加前对其进行30%缩放的预处理。 那么水印图片预处理后的URL为: panda.png?x-oss-process=image/resize,P_30(经过Base64编码后为:cGFuZGEucG5nP3gtb3NzLXByb2Nlc3M9aW1hZ2UvcmVzaXplLFBfMzA)。

    将主图缩略为宽度400,再使用预处理后的 panda.png图片为主图添加水印,水印的透明度为90,位置是右下,水平边距是10,中线垂直偏移是10。

    处理后的URL为:<原图URL>?x-oss-process=image/resize,w_300/watermark,image_cGFuZGEucG5nP3gtb3NzLXByb2Nlc3M9aW1hZ2UvcmVzaXplLFBfMzA,t_90,g_se,x_10,y_10

  • 为原图添加文字水印。水印字体是文泉驿正黑,字体大小是40,颜色是白色(#FFFFFF),文字阴影是50,内容是“Hello,图片服务!”,位置是右下,水平边距是10,中线垂直偏移是10。

    处理后的URL为:<原图URL>?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,位置在右下,水印图片是位于Bucket根目录下的panda.png,水平边距和垂直边距都是10,水印透明是100, 排版方式是图片在前,对齐方式是下对齐,间距是10。

    处理后的URL为:<原图URL>?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

  • 为原图添加多个水印,包括4个不同的文本水印和5个图片水印,图片水印使用到了3张不同的水印图片。

    处理后的URL为:<原图URL>?x-oss-process=image/watermark,image_cGljcy9KZWxseWZpc2guanBnP3gtb3NzLXByb2Nlc3M9aW1hZ2UvcmVzaXplLFBfMjA,g_nw,x_10,y_10/watermark,image_cGljcy9Lb2FsYS5qcGc_eC1vc3MtcHJvY2Vzcz1pbWFnZS9yZXNpemUsUF8yMA,g_se,x_10,y_10/watermark,image_cGljcy9UdWxpcHMuanBnP3gtb3NzLXByb2Nlc3M9aW1hZ2UvcmVzaXplLFBfMjA,g_west,x_10,y_10/watermark,image_cGljcy9Lb2FsYS5qcGc_eC1vc3MtcHJvY2Vzcz1pbWFnZS9yZXNpemUsUF8yMA,g_se,x_100,y_100/watermark,image_cGljcy9UdWxpcHMuanBnP3gtb3NzLXByb2Nlc3M9aW1hZ2UvcmVzaXplLFBfMjA,g_west,x_100,y_100/watermark,text_b3Nz5paH5a2X5rC05Y2wMQ,size_20,x_10,y_200/watermark,text_b3Nz5paH5a2X5rC05Y2wMg,color_0000b7,size_20,g_sw,x_100,y_100/watermark,text_b3Nz5paH5a2X5rC05Y2wMw,color_b3b324,size_20,g_ne,x_10,y_10/watermark,text_b3Nz5paH5a2X5rC05Y2wNA,color_b3b324,size_20,g_east,x_10,y_10

常见问题

如何使用网络图片或本地图片作为水印图片?

通过OSS的图片处理为图片添加图片水印时,仅可以使用相同存储空间内的图片作为水印图片。若您希望使用网络图片或本地图片作为水印图片,需要先将图片上传到原图所在存储空间,之后再使用上传的图片作为水印图片处理原图。