水印
更新时间:2024-09-10
概述
本文介绍如何设置水印。图片水印是指在图片上方插入另一张图片或者文字作为水印,是一种数字信息的保护手段。目前 BOS 图像处理 V1.0 协议支持图片水印和文字水印两种水印方式。BOS 将您的原始图片分成如下图所示 9 个区域,并按照图示位置进行编号,每个区域均包含锚点。
确定水印在原图上的最终位置,您需要确定如下两个因素:
- 锚点位置;
- 基于锚点位置,指定在水平和垂直方向上的距离。
锚点位置如图所示:
图片水印参数
参数名称 | 缩写命令 | 类型 | 取值范围 | 命令描述 | 缺省值 | 是否必选 |
---|---|---|---|---|---|---|
watermark | wm | unsigned | 0,1,2 | 指定水印方式。 wm_0表示关闭水印功能; wm_1表示图片水印; wm_2表示文字水印。 |
- | 是 |
key | k | string | - | 指定水印图片存储在BOS上的 Object名称,即ObjectKey。 如Object存储在文件夹下,则 需要包含文件夹路径。 该值要求为Base64编码后的值。 |
- | 是 |
gravity | g | unsigned int | 1~9 | 指定水印的锚点位置。 图片锚点的含义请参考图片水印命令。 |
9 | 否 |
gravityX | x | int | -4096~4096 | 指定水印基于锚点的水平方向距离。 | 10 | 否 |
gravityY | y | int | -4096~4096 | 指定水印基于锚点的垂直方向距离。 | 10 | 否 |
angle | a | int | -360~360 | 指定水印图片的旋转角度。 正数表示顺时针旋转,如 a_60 ;负数表示逆时针旋转,如 a_-30 。 |
0 | 否 |
opacity | o | unsigned int | 1~100 | 指定水印图片的透明度。 取值为100时,表示与原始 图片透明度一致。 |
100 | 否 |
说明
- 水印图片要与原始图片存储在BOS的同一个Bucket下。
文字水印参数
参数名称 | 缩写命令 | 类型 | 取值范围 | 命令描述 | 缺省值 | 是否必选 |
---|---|---|---|---|---|---|
watermark | wm | unsigned | 0,1,2 | 指定水印方式。 wm_0表示关闭水印功能; wm_1表示图片水印; wm_2表示文字水印。 |
- | 是 |
text | t | string | - | 水印文字内容,需要进行 Base64编码,且编码后最 多不能超过80个字符。 |
- | 是 |
gravity | g | unsigned int |
1~9 | 指定水印的锚点位置。图片 锚点的含义请参考图片水印命令。 |
9 | 否 |
gravityX | x | int | -4096~4096 | 指定水印基于锚点的水平方 向距离。 |
10 | 否 |
gravityY | y | int | -4096~4096 | 指定水印基于锚点的垂直方 向距离。 |
10 | 否 |
angle | a | int | -360~360 | 指定水印图片的旋转角度。 正数表示顺时针旋转,如 a_60 ;负数表示逆时针旋转,如 a_-30 。 |
0 | 否 |
fontSize | sz | unsigned int |
1~1024 | 指定水印字体大小,单位 是 px。 |
30 | 否 |
fontColor | fc | string | - | 指定字体颜色,为一个8位 的16进制字符串,其中每2 位用来表示RGBA中的一项。 前6位分别表示RGB色,如 ffffff;最后2位表示Alpha 通道,可省略,省略时表示 不透明。 例如:000000ff表示黑色不 透明字体。 |
000000 | 否 |
fontFamily | ff | string | - | 指定字体的字体类型,取值 要求进行Base64编码。已支 持的字体类型请参见 下方列表。 |
宋体 | 否 |
fontStyle | fs | string | normal(常规) italic(斜体) bold(粗体) |
指定字体样式。 | normal | 否 |
已支持的字体类型:
参数取值 | 字体类型 |
---|---|
MicrosoftYaHei | 微软雅黑 |
FangSong | 仿宋 |
SimHei | 黑体 |
KaiTi | 楷体 |
SimSun | 宋体 |
FZBeiWeiKaiShuJianTi | 方正北魏楷书简体 |
FZBoYaSongJianTi | 方正博雅宋简体 |
FZCuHeiSongJianTi | 方正粗黑宋简体 |
FZLanTingZhongHeiJianTi | 方正兰亭中黑简体 |
FZZhengHei | 方正正黑 |
AvantGarde | AvantGarde |
Bookman | Bookman |
Courier | Courier |
Helvetica | Helvetica |
HelveticaNarrow | HelveticaNarrow |
NewCenturySchlbk | NewCenturySchlbk |
Palatino | Palatino |
Times | Times |
Symbol | Symbol |
说明:
- 只有当fontFamily支持fontStyle效果时,才会渲染文字效果。
- 若指定的字体样式不在当前已支持的fontFamily列表中,则显示效果为默认字体宋体。
图文混合水印
图文混合水印是指将图片水印和文字水印同时打在原始图片上。由于图片水印和文字水印为两组独立的命令,因此图文混合水印需要用管道实现。
示例
图片水印示例
原图为image.jpg,水印图片为bce-documentation/BOS/bce.jpg(Base64编码后为“YmNlLWRvY3VtZW50YXRpb24vQk9TL2JjZS5qcGc=”)。
- 在右下角加上图片水印,指定垂直距离为10,透明度为60。
- 在左下角加上水印,水平和垂直距离取缺省值,透明度为50,并顺时针旋转90度。
文字水印示例
- 最简单的文字水印,文字内容为“hello world”。
https://doc.bce.baidu.com/bce-documentation/BOS/image.jpg@wm_2,t_aGVsbG8gd29ybGQ=
- 文字内容为“hello world”,字体类型为微软雅黑,字体颜色和字体大小取默认值,字体样式为粗体,水印位置在右中,距离锚点水平距离20,垂直距离20,并顺时针旋转30度。
图文混合水印
- 最简单的图文混合水印:图片为bce-documentation/BOS/bce.jpg,文字内容为“hello world”,其余参数均取默认值。
- 图文混合水印:水印图片为bce-documentation/BOS/bce.jpg,位于原图左下角,距离锚点水平距离为,15,垂直距离为20,透明度为50;文字内容为“hello world”,位于正上方,垂直距离为100,字体颜色为淡紫色。