您可以通过图片水印参数,为您存储在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

    水平边距、垂直边距、中线垂直偏移不仅可以调节水印在图片中的位置,当图片存在多重水印时,还可以调节水印在图中的布局。

    区域数值以及每个区域对应的基准点如下图所示。origin
  • 图片水印参数
    参数 是否必须 描述 取值范围
    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编码。编码步骤如下:

  1. 将内容编码成Base64。
  2. 将结果中的部分编码替换。
    • 将结果中的加号(+)替换成短划线(-)。
    • 将结果中的正斜线(/)替换成下划线(_)。
    • 将结果中尾部的等号(=)省略。

推荐通过URL-safe Baes64编码工具对文字水印的文字内容、文字颜色、文字字体、图片水印的水印图片名称等参数进行编码。

注意 水印编码后的内容仅应用在水印操作的特定参数中,请勿将其用在签名字符串(Signature)中。

示例一:添加文字水印

以华北3(张家口)地域名为image-demo的Bucket中的图片example.jpg为例,图片访问URL为https://image-demo-oss-zhangjiakou.oss-cn-zhangjiakou.aliyuncs.com/example.jpg原图

为example.jpg图片添加文字水印示例如下:

示例二:添加图片水印

为example.jpg图片添加图片水印示例如下:

示例三:添加图片和文字混合水印

为example.jpg图片添加图片和文字混合水印的示例如下:

常见问题

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

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