文字水印

更新时间:
复制 MD 格式

文字水印即在原图上添加文字内容。

访问类型

@watermark=2&text=<encodeText>&type=<encodeType>&size=<size>&color=<encode colr>&t=<t>&p=<p>&x=<x>&voffset=<offset>&y=<y>

必填项:watermark与object。

说明

文中出现的url_safe_base64_encode指的是URL安全Base64编码,请参见关键词。

参数

名称

描述

取值

类型

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

可选参数

s

文字水印的阴影透明度

取值范围:(0,100]

可选参数

水印位置参数请参考基本参数。

文字类型编码对应表

参数值

中文意思

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

示例

  • 添加文字水印

    简单水印示例:文字内容为“Hello, 图片服务!”。

    https://oss-console-img-demo-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/example.jpg@watermark=2&text=SGVsbG8g5Zu-54mH5pyN5YqhIQ

    文字水印4

  • 添加文字水印并设置样式

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

    https://oss-console-img-demo-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/example.jpg@watermark=2&type=d3F5LXplbmhlaQ&size=40&text=SGVsbG8g5Zu-54mH5pyN5YqhIQ&color=I0ZGRkZGRg&s=50&t=90&p=6&x=10&voffset=20

    文字水印3

  • 添加时间戳水印

    text 参数只接受 URL 安全 Base64 编码的静态文本,不支持自动读取文件上传时间或使用动态时间变量。使用 text_dynamic:time、text_meta:ctime 等参数会返回如下错误:

    HTTP 400 InvalidArgument
    Input is not base64 decoding

    如需为图片添加上传时刻的时间戳水印,需由应用端在上传时获取当前时间,编码后作为 text 参数拼入图片访问 URL。以下基于 oss2 SDK 的 Python 示例演示了获取当前时间、编码后生成带时间戳水印的图片访问链接:

    import oss2, base64
    from datetime import datetime
    
    auth = oss2.Auth(access_key_id, access_key_secret)
    bucket = oss2.Bucket(auth, endpoint, bucket_name)
    
    timestamp = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
    encoded = base64.b64encode(timestamp.encode("utf-8")).decode("utf-8")
    watermark = f"image/watermark,text_{encoded},color_FFFFFF,size_40,t_80"
    url = bucket.sign_url("GET", object_key, 3600, params={"x-oss-process": watermark})
    说明

    示例中 base64.b64encode 生成的是标准 Base64 编码。如编码结果中包含 +、/ 或尾部 =,需按 URL 安全 Base64 规则替换(+ → -,/ → _,省略尾部 =)后再拼入 URL,避免因编码不合法导致请求失败。