Python 2.7.8
tornado (4.0.2)
* 图像处理 Pillow (2.7.0)
此接口可对图片进行缩放操作,生成各种缩略图
注意:接口规格不含任何空格与换行符,下列内容经过格式化以便阅读。
imageView/<mode>
/w/<Width>
/h/<Height>
/format/<Format>
或
imageView/<mode>
/w/<LongEdge>
/h/<ShortEdge>
/format/<Format>
/interlace/<Interlace>
其中 <mode>
分为如下几种情况:
模式 | 说明 |
---|---|
/0/w/<LongEdge>/h/<ShortEdge> |
限定缩略图的长边最多为,短边最多为,进行等比缩放,不裁剪。如果只指定 w 参数则表示限定长边(短边自适应),只指定 h 参数则表示限定短边(长边自适应)。 |
/1/w/<Width>/h/<Height> |
限定缩略图的宽最少为,高最少为,进行等比缩放,居中裁剪。转后的缩略图通常恰好是 x 的大小(有一个边缩放的时候会因为超出矩形框而被裁剪掉多余部分)。如果只指定 w 参数或只指定 h 参数,代表限定为长宽相等的正方图。 |
/2/w/<Width>/h/<Height> |
限定缩略图的宽最多为,高最多为,进行等比缩放,不裁剪。如果只指定 w 参数则表示限定长边(短边自适应),只指定 h 参数则表示限定短边(长边自适应)。它和模式0类似,区别只是限定宽和高,不是限定长边和短边。从应用场景来说,模式0适合移动设备上做缩略图,模式2适合PC上做缩略图。 |
/2/w/<Width>/h/<Height> |
限定缩略图的宽最多为,高最多为,进行等比缩放,不裁剪。如果只指定 w 参数则表示限定长边(短边自适应),只指定 h 参数则表示限定短边(长边自适应)。它和模式0类似,区别只是限定宽和高,不是限定长边和短边。从应用场景来说,模式0适合移动设备上做缩略图,模式2适合PC上做缩略图。 |
/3/w/<Width>/h/<Height> |
限定缩略图的宽最少为,高最少为,进行等比缩放,不裁剪。你可以理解为模式1是模式3的结果再做居中裁剪得到的。 |
/4/w/<LongEdge>/h/<ShortEdge> |
限定缩略图的长边最少为,短边最少为,进行等比缩放,不裁剪。这个模式很适合在手持设备做图片的全屏查看(把这里的长边短边分别设为手机屏幕的分辨率即可),生成的图片尺寸刚好充满整个屏幕(某一个边可能会超出屏幕)。 |
/5/w/<LongEdge>/h/<ShortEdge> |
限定缩略图的长边最少为,短边最少为,进行等比缩放,居中裁剪。同上模式4,但超出限定的矩形部分会被裁剪。 |
注意:
- 可以仅指定w参数或h参数;
- 新图的宽/高/长边/短边,不会比原图大,即本接口总是缩小图片;
- 所有模式都可以只指定w参数或只指定h参数,并获得合理结果。在w、h为限定最大值时,未指定某参数等价于将该参数设置为无穷大(自适应);在w、h为限定最小值时,未指定参数等于给定的参数,也就限定的矩形是正方形。
参数名称 | 必填 | 说明 |
---|---|---|
/format/<Format> |
新图的输出格式。取值范围:jpg,gif,png,webp,缺省为原图格式。 | |
/interlace/<Interlace> |
是否支持渐进显示。取值范围:1 支持渐进显示,0不支持渐进显示(缺省为0)。适用目标格式:jpg。效果:网速慢时,图片显示由模糊到清晰。 |
GET <ImageDownloadURI>?<接口规格> HTTP/1.1
说明:
原图规格600 * 400
<ImageDownloadURI>?imageView/0/w/500/h/200
返回图片规格为300 * 200
w = 600 # 原图宽度600像素
h = 400 # 原图高度400像素
origin_long_edge = 600 # 原图长边600像素
origin_short_edge = 400 # 原图短边400像素
long_edge = 500 # 缩放后长边最多为500像素
short_edge = 200 # 缩放后短边最多为200像素
ratio_long = long_edge / origin_long_edge = 0.83
ratio_short = short_edge / origin_short_edge = 0.50
# 取比例的最小值
min_ratio = min(ratio_long, ratio_short) = 0.50
resize_long_edge = origin_long_edge * min_ratio = 300 # 长边要求最多为500
resize_short_edge = origin_short_edge * min_ratio = 200 # 短边要求最多为200
<ImageDownloadURI>?imageView/1/w/500/h/200
返回图片规格为 500 * 200
w = 600 # 原图宽度600像素
h = 400 # 原图高度400像素
with = 500 # 宽度要求最少为500像素
height = 200 # 高度要求最少为200像素
ratio_w = width / w = 0.83
ratio_h = height / h = 0.50
# 取最大比例
max_ratio = max(ratio_w, ratio_h) = 0.83
# 图片缩放后大小
resize_w = w * max_ratio = 500
resize_h = h * max_ratio = 332
# 图片居中裁剪
# 以左上角为圆点(0, 0),右上角为(w, 0), 左下角为(0, h)
# 依次左、上、右、下
box[0] = (resize_w - w) / 2 = 0
box[1] = (resize_h - h) / 2 = 66
box[2] = box[0] + w = 500
box[3] = box[1] + h = 266
<ImageDownloadURI>?imageView/2/w/500/h/200
返回图片规格为300 * 200
w = 600 # 原图宽度600像素
h = 400 # 原图高度400像素
with = 500 # 宽度要求最多为500像素
height = 200 # 高度要求最多为200像素
ratio_w = width / w = 0.83
ratio_h = height / h = 0.50
# 取最小比例
min_ratio = min(ratio_w, ratio_h) = 0.50
# 图片缩放后大小
resize_w = w * min_ratio = 300 # 宽度最多500像素
resize_h = h * min_ratio = 200 # 高度最多200像素
<ImageDownloadURI>?imageView/2/w/500/h/200
返回图片规格为500 * 332
w = 600 # 原图宽度600像素
h = 400 # 原图高度400像素
with = 500 # 宽度要求最多少500像素
height = 200 # 高度要求最少为200像素
ratio_w = width / w = 0.83
ratio_h = height / h = 0.50
# 取最大比例
max_ratio = max(ratio_w, ratio_h) = 0.83
# 图片缩放后大小
resize_w = w * min_ratio = 500 # 宽度最少500像素
resize_h = h * min_ratio = 332 # 高度最少200像素
<ImageDownloadURI>?imageView/2/w/500/h/200
返回图片规格为500 * 332
w = 600 # 原图宽度600像素
h = 400 # 原图高度400像素
origin_long_edge = 600 # 原图长边600像素
origin_short_edge = 400 # 原图短边400像素
long_edge = 500 # 缩放后长边最少为500像素
short_edge = 200 # 缩放后短边最少为200像素
ratio_long = long_edge / origin_long_edge = 0.83
ratio_short = short_edge / origin_short_edge = 0.50
# 取比例的最小值
max_ratio = max(ratio_long, ratio_short) = 0.83
# 图片缩放后大小
resize_long_edge = w * min_ratio = 500 # 长边最少500像素
resize_ratio_short = h * min_ratio = 332 # 短边最少200像素
<ImageDownloadURI>?imageView/2/w/500/h/200
返回图片规格为500 * 200
w = 600 # 原图宽度600像素
h = 400 # 原图高度400像素
origin_long_edge = 600 # 原图长边600像素
origin_short_edge = 400 # 原图短边400像素
long_edge = 500 # 缩放后长边最少为500像素
short_edge = 200 # 缩放后短边最少为200像素
ratio_long = long_edge / origin_long_edge = 0.83
ratio_short = short_edge / origin_short_edge = 0.50
# 取比例的最小值
max_ratio = max(ratio_long, ratio_short) = 0.83
# 图片缩放后大小
resize_long_edge = w * min_ratio = 500 # 长边最少500像素。即缩放后宽度
resize_ratio_short = h * min_ratio = 332 # 短边最少200像素。即缩放后高度
resize_w = resize_long_edge
resize_h = resize_ratio_short
# 图片居中裁剪
box[0] = (resize_w - long_edge) / 2 = 0
box[1] = (resize_h - short_edge) / 2 = 66
box[2] = box[0] + long_edge = 500
box[3] = box[1] + short_edge = 266
此接口为开发者提供一系列高级图片处理功能,包括缩放、裁剪、旋转等等。
注意:接口规格不含任何空格与换行符,下列内容经过格式化以便阅读。
imageMogr/auto-orient
/thumbnail/<imageSizeGeometry>
/strip
/gravity/<gravityType>
/crop/<imageSizeAndOffsetGeometry>
/rotate/<rotateDegree>
/format/<destinationImageFormat>
/blur/<radius>x<sigma>
/interlace/<Interlace>
参数名称 | 必填 | 说明 |
---|---|---|
/auto-orient |
根据原图EXIF信息自动旋正,便于后续处理建议放在首位。 | |
/strip |
去除图片中的元信息 | |
/blur/ |
对图片高斯模糊。 | |
/thumbnail/<imageSizeGeometry> |
参看缩放操作参数表,缺省为不缩放。 | |
/gravity/<gravityType> |
参看图片处理重心参数表,目前在imageMogr2中只影响其后的裁剪偏移参数,缺省为左上角(NorthWest)。 | |
/crop/<imageSizeAndOffsetGeometry> |
参看裁剪操作参数表,缺省为不裁剪。 | |
/rotate/<rotateDegree> |
旋转角度。取值范围1-360,缺省为不旋转。 | |
/format/<destinationImageFormat> |
图片格式。支持jpg、gif、png、webp,缺省为原图格式。 | |
/interlace/<Interlace> |
是否支持渐进显示。取值范围:1 支持渐进显示,0不支持渐进显示(缺省为0)。效果:网速慢时,图片显示由模糊到清晰。 |
缩放操作参数表
参数名称 | 必填 | 说明 |
---|---|---|
/thumbnail/!<Scale>p |
基于原图大小,按指定百分比缩放。取值范围0-1000。 | |
/thumbnail/!<Scale>px |
以百分比形式指定目标图片宽度,高度不变。取值范围0-1000。 | |
/thumbnail/!x<Scale>p |
以百分比形式指定目标图片高度,宽度不变。取值范围0-1000。 | |
/thumbnail/<Width>x |
指定目标图片宽度,高度等比缩放。取值范围0-10000。 | |
/thumbnail/x<Height> |
指定目标图片高度,宽度等比缩放。取值范围0-10000。 | |
/thumbnail/<Width>x<Height> |
限定长边,短边自适应缩放,将目标图片限制在指定宽高矩形内。取值范围不限,但若宽高超过10000只能缩不能放。 | |
/thumbnail/!<Width>x<Height>r |
限定短边,长边自适应缩放,目标图片会延伸至指定宽高矩形外。取值范围不限,但若宽高超过10000只能缩不能放。 | |
/thumbnail/<Width>x<Height>! |
限定目标图片宽高值,忽略原图宽高比例,按照指定宽高值强行缩略,可能导致目标图片变形。取值范围不限,但若宽高超过10000只能缩不能放。 | |
/thumbnail/<Width>x<Height>> |
当原图尺寸大于给定的宽度或高度时,按照给定宽高值缩小。取值范围不限,但若宽高超过10000只能缩不能放。 | |
/thumbnail/<Width>x<Height>< |
当原图尺寸小于给定的宽度或高度时,按照给定宽高值放大。取值范围不限,但若宽高超过10000只能缩不能放。 | |
/thumbnail/<Area>@ |
按原图高宽比例等比缩放,缩放后的像素数量不超过指定值。取值范围不限,但若像素数超过100000000只能缩不能放。 |
图片处理重心参数表
在高级图片处理现有的功能中只影响其后的裁剪偏移参数,即裁剪操作以gravity
为原点开始偏移后,进行裁剪操作。
NorthWest | North | NorthEast
| |
| |
--------------+----------------+--------------
| |
West | Center | East
| |
--------------+----------------+--------------
| |
| |
SouthWest | South | SouthEast
裁剪操作参数表(cropSize)
参数名称 | 必填 | 说明 |
---|---|---|
/crop/!{cropSize}a<dx>a<dy> |
相对于偏移锚点,向右偏移dx个像素,同时向下偏移dy个像素。取值范围不限,小于原图宽高即可。 | |
/crop/!{cropSize}-<dx>a<dy> |
相对于偏移锚点,向下偏移dy个像素,同时从指定宽度中减去dx个像素。取值范围不限,小于原图宽高即可。 | |
/crop/!{cropSize}a<dx>-<dy> |
相对于偏移锚点,向右偏移dx个像素,同时从指定高度中减去个像素。取值范围不限,小于原图宽高即可。 | |
/crop/!{cropSize}-<dx>-<dy> |
相对于偏移锚点,从指定宽度中减去dx个像素,同时从指定高度中减去dy个像素。取值范围不限,小于原图宽高即可。 |
例如,
/crop/!300x400a10a10
表示从源图坐标为x:10,y:10处截取300x400的子图片。
/crop/!300x400-10a10
表示从源图坐标为x:0,y:10处截取290x400的子图片。
注意1:必须同时指定横轴偏移和纵轴偏移。
注意2:计算偏移值会受到位置偏移指示符(/gravity/)影响。默认为相对于左上角计算偏移值(即NorthWest),参看裁剪锚点参数表。
转义说明 部分参数以“!”开头,表示参数将被转义。为便于阅读,我们采用特殊转义方法,如下所示:
p => % (percent)
r => ^ (reverse)
a => + (add)
即!50x50r实际代表50x50^这样一个字符串。
而!50x50实际代表50x50这样一个字符串(该字符串并不需要转义)。
中的OffsetGeometry部分可以省略,缺省为+0+0。
即/crop/50x50等价于/crop/!50x50a0a0,执行-crop 50x50+0+0语义。
GET <imageDownloadURI>?<接口规格> HTTP/1.1
- 参数的顺序会影响结果
- auto-orient 参数是和图像处理顺序相关的,一般建议放在首位(根据原图EXIF信息自动旋正)
说明:
原图规格600 * 400
缩放操作
<ImageDownloadURI>?imageMogr/thumbnail/!75p
返回图片规格为450 * 300
w = 600 # 原图宽为600像素
h = 400 # 原图高为400像素
scale = 75 # 缩放系数
resize_w = w * (scale / 100) = 450 # 缩放后宽度为450像素
resize_h = h * (scale / 100) = 300 # 缩放后高度为300像素
<ImageDownloadURI>?imageMogr/thumbnail/!75px
返回图片规格450 * 400
w = 600 # 原图宽为600像素
h = 400 # 原图高为400像素
scale = 75 # 缩放系数
resize_w = w * (scale / 100) = 450 # 缩放后宽度为450像素
resize_h = h = 400 # 高度不缩放
<ImageDownloadURI>?imageMogr/thumbnail/!x75p
返回图片规格600 * 300
w = 600 # 原图宽为600像素
h = 400 # 原图高为400像素
scale = 75 # 缩放系数
resize_w = w = 600 # 高度不缩放
resize_h = h * (scale / 100) = 300 # 缩放后高度为300像素
<ImageDownloadURI>?imageMogr/thumbnail/300x
返回图片规格300 * 200
w = 600 # 原图宽为600像素
h = 400 # 原图高为400像素
resize_w = 300 # 缩放后图片宽度为300像素
ratio = resize_w / w = 0.50 # 缩放比例为0.50
resize_h = h * ratio = 200 # 高度等比缩放
<ImageDownloadURI>?imageMogr/thumbnail/x300
返回图片格式450 * 300
w = 600 # 原图宽为600像素
h = 400 # 原图高为400像素
resize_h = 300 # 缩放后图片高度为300像素
ratio = resize_h / h = 0.75 # 高度缩放比例
resize_w = w * ratio = 450 # 宽度等比缩放
<ImageDownloadURI>?imageMogr/thumbnail/500x300
返回图片规格450 * 300
w = 600 # 原图宽为600像素
h = 400 # 原图高为400像素
long_edge = 500 # 缩放后最大长边
short_edge = 300 # 缩放后最大短边
origin_long_edge = max(w, h) = 600 # 长边
origin_short_edge = min(w, h) = 400 # 短边
ratio_long = long_edge / origin_long_edge = 0.83 # 长边缩放比例
ratio_short = short_edge / origin_short_edge = 0.75 # 短边缩放比例
# 目标图片在指定高宽内,取最小缩放比例
min_ratio = min(ratio_long, ratio_short) = 0.75 # 最小缩放比例
resize_w = w * min_ratio = 450 # 缩放后宽度
resize_h = h * min_ratio = 300 # 缩放后高度
<ImageDownloadURI>?imageMogr/thumbnail/!500x300r
返回图片格式500 * 332
w = 600 # 原图宽为600像素
h = 400 # 原图高为400像素
long_edge = 500 # 缩放后最大长边
short_edge = 300 # 缩放后最大短边
origin_long_edge = max(w, h) = 600 # 长边
origin_short_edge = min(w, h) = 400 # 短边
ratio_long = long_edge / origin_long_edge = 0.83 # 长边缩放比例
ratio_short = short_edge / origin_short_edge = 0.75 # 短边缩放比例
# 目标图片在指定高宽外,取最大缩放比例
max_ratio = min(ratio_long, ratio_short) = 0.83 # 最小缩放比例
resize_w = w * max_ratio = 500 # 缩放后宽度
resize_h = h * max_ratio = 332 # 缩放后高度
<ImageDownloadURI>?imageMogr/thumbnail/500x300!
返回图片格式500 * 300
w = 600 # 原图宽为600像素
h = 400 # 原图高为400像素
width = 500 # 缩放后宽度
height = 300 # 缩放后高度
resize_w = width
resize_h = height
<ImageDownloadURI>?imageMogr/thumbnail/500x300>
返回图片格式500 * 300
w = 600 # 原图宽为600像素
h = 400 # 原图高为400像素
# 仅当宽、高都比原图小时才会进行缩放
width = 500 # 缩放后宽度
height = 300 # 缩放后高度
ratio_w = width / w = 0.83
ratio_h = height / w = 0.75
# 取最小比例
min_ratio = min(ratio_w, ratio_h) = 0.75
resize_w = w * min_ratio = 500
resize_h = h * min_ratio = 332
<ImageDownloadURI>?imageMogr/thumbnail/800x800<
返回图片格式800 * 532
w = 600 # 原图宽为600像素
h = 400 # 原图高为400像素
# 仅当宽、高都比原图大时才会进行缩放
width = 800 # 缩放后宽度
height = 800 # 缩放后高度
ratio_w = width / w = 1.33
ratio_h = height / w = 2.00
min_ratio = min(ratio_w, ratio_h) = 1.33
resize_w = w * min_ratio = 800
resize_h = h * min_ratio = 532
<ImageDownloadURI>?imageMogr/thumbnail/3600000@
返回图片格式800 * 532
w = 600 # 原图宽为600像素
h = 400 # 原图高为400像素
max_area = 360000 # 等比例缩放后最大像素为3600000
origin_area = w * h = 240000 # 原图像素
ratio = math.sqrt(max_area / origin_area) = 3.87 # 面积比开方即为等比缩放比例
resize_w = w * ratio = 2322 # 缩放后宽度
resize_h = h * ratio = 1548 # 缩放后高度
基础裁剪
<ImageDownloadURI>?imageMogr/crop/200x
返回图片格式200 * 400
w = 600 # 原图宽为600像素
h = 400 # 原图高为400像素
width = 200 # 裁剪后的宽度
# 高度不变
# 以左上角为圆点(0, 0),右上角为(w, 0), 左下角为(0, h)
# 依次左、上、右、下
box[0] = 0
box[1] = 0
box[2] = width
box[3] = h
<ImageDownloadURI>?imageMogr/crop/x200
返回图片格式600 * 200
w = 600 # 原图宽为600像素
h = 400 # 原图高为400像素
height = 200 # 裁剪后的高度
# 宽度不变
# 以左上角为圆点(0, 0),右上角为(w, 0), 左下角为(0, h)
# 依次左、上、右、下
box[0] = 0
box[1] = 0
box[2] = w
box[3] = height
<ImageDownloadURI>?imageMogr/crop/300x200
返回图片格式200 * 400
w = 600 # 原图宽为600像素
h = 400 # 原图高为400像素
width = 300 # 裁剪后的宽度
height = 200 # 裁剪后的高度
# 宽度不变
# 以左上角为圆点(0, 0),右上角为(w, 0), 左下角为(0, h)
# 依次左、上、右、下
box[0] = 0
box[1] = 0
box[2] = width
box[3] = height
偏移裁剪
<ImageDownloadURI>?imageMogr/gravity/Center/crop/!200x200a10a10
w = 600 # 原图宽为600像素
h = 400 # 原图高为400像素
width = 200 # 裁剪图宽度
height = 200 # 裁剪图高度
dx = 10 # 向右偏移10像素
dy = 10 # 向下偏移10像素
# gravity = Center
point = (w / 2, h / 2) = (300, 200) # 偏移锚点
# 裁剪图中心先趋于偏移锚点,后偏移。但是始终在原图范围内。
# 以偏移锚点为中心上下左右均分。
# 如果计算出来的边距为负或者大于原图宽高,则进行修正。
# 修正规则为,截图中心将无限趋于锚点。直至截图位于原图内部。
box[0] = point[0] - (width / 2) = 200
box[1] = point[1] - (height / 2) = 100
box[2] = point[0] + (width / 2) = 400
box[3] = point[1] + (height / 2) = 300
# 偏移
# 如果偏移后边界超出原图,将再次对偏移进行修正。
box[0] += dx = 210
box[1] += dy = 110
box[2] += dx = 410
box[3] += dy = 310
<ImageDownloadURI>?imageMogr/gravity/Center/crop/!200x200-10a10
w = 600 # 原图宽为600像素
h = 400 # 原图高为400像素
width = 200 # 裁剪图宽度
height = 200 # 裁剪图高度
dx = 10 # 宽度进去10像素
dy = 10 # 向下偏移10像素
width -= dx = 190 # 宽度减去dx像素
# gravity = Center
point = (w / 2, h / 2) = (300, 200) # 偏移锚点
# 裁剪图中心先趋于偏移锚点,后偏移。但是始终在原图范围内。
# 以偏移锚点为中心上下左右均分。
# 如果计算出来的边距为负或者大于原图宽高,则进行修正。
# 修正规则为,截图中心将无限趋于锚点。直至截图位于原图内部。
box[0] = point[0] - (width / 2) = 205
box[1] = point[1] - (height / 2) = 100
box[2] = point[0] + (width / 2) = 395
box[3] = point[1] + (height / 2) = 300
# 偏移
# 如果偏移后边界超出原图,将再次对偏移进行修正。
box[1] += dy = 110
box[3] += dy = 310
<ImageDownloadURI>?imageMogr/gravity/Center/crop/!200x200a10-10
w = 600 # 原图宽为600像素
h = 400 # 原图高为400像素
width = 200 # 裁剪图宽度
height = 200 # 裁剪图高度
dx = 10 # 向右偏移10像素
dy = 10 # 高度减去10像素
height -= dy = 190
# gravity = Center
point = (w / 2, h / 2) = (300, 200) # 偏移锚点
# 裁剪图中心先趋于偏移锚点,后偏移。但是始终在原图范围内。
# 以偏移锚点为中心上下左右均分。
# 如果计算出来的边距为负或者大于原图宽高,则进行修正。
# 修正规则为,截图中心将无限趋于锚点。直至截图位于原图内部。
box[0] = point[0] - (width / 2) = 200
box[1] = point[1] - (height / 2) = 105
box[2] = point[0] + (width / 2) = 400
box[3] = point[1] + (height / 2) = 295
# 偏移
# 如果偏移后边界超出原图,将再次对偏移进行修正。
box[0] += dx = 210
box[2] += dx = 410
<ImageDownloadURI>?imageMogr/gravity/Center/crop/!200x200-10-10
w = 600 # 原图宽为600像素
h = 400 # 原图高为400像素
width = 200 # 裁剪图宽度
height = 200 # 裁剪图高度
dx = 10 # 宽度减去10像素
dy = 10 # 高度减去10像素
width -= dx = 190
height -= dy = 190
# gravity = Center
point = (w / 2, h / 2) = (300, 200) # 偏移锚点
# 裁剪图中心先趋于偏移锚点,后偏移。但是始终在原图范围内。
# 以偏移锚点为中心上下左右均分。
# 如果计算出来的边距为负或者大于原图宽高,则进行修正。
# 修正规则为,截图中心将无限趋于锚点。直至截图位于原图内部。
box[0] = point[0] - (width / 2) = 205
box[1] = point[1] - (height / 2) = 105
box[2] = point[0] + (width / 2) = 395
box[3] = point[1] + (height / 2) = 295
此接口提供图片水印、文字水印
注意:接口规格不含任何空格与换行符,下列内容经过格式化以便阅读。
watermark/1
/image/<encodedImageURL>
/dissolve/<dissolve>
/gravity/<gravity>
/dx/<distanceX>
/dy/<distanceY>
参数名称 | 必填 | 说明 |
---|---|---|
/image/<encodedImageURL> |
是 | 水印源图片文件名(经过URL安全的Base64编码,现阶段只支持本系统中的图片作为水印),必须有效且返回一张图片 |
/dissolve/<dissolve> |
||
/gravity/<gravity> |
水印位置,参考水印锚点参数表,缺省值为SouthEast(右下角) | |
/dx/<distanceX> |
横轴边距,单位:像素(px),缺省值为10 | |
/dy/<distanceY> |
纵轴边距,单位:像素(px),缺省值为10 |
NorthWest | North | NorthEast
| |
| |
--------------+----------------+--------------
| |
West | Center | East
| |
--------------+----------------+--------------
| |
| |
SouthWest | South | SouthEast
规格接口规格
注意:接口规格不含任何空格与换行符,下列内容经过格式化以便阅读。
watermark/2
/text/<encodedText>
/font/<encodedFontName>
/fontsize/<fontSize>
/fill/<encodedTextColor>
/dissolve/<dissolve>
/gravity/<gravity>
/dx/<distanceX>
/dy/<distanceY>
|参数名称|必填|说明|
|/text/<encodedText>
|是|水印文字内容(经过URL安全的Base64编码)|
|/font/<encodedFontName>
||水印文字字体(经过URL安全的Base64编码),缺省为黑体。
注意:中文水印必须指定中文字体。|
|/fontsize/<fontSize>
||水印文字大小,单位像素|
|/fill/<encodedTextColor>
||印文字颜色,RGB格式,可以是颜色名称(比如red)或十六进制(比如#FF0000),缺省为白色|
|||/dissolve/<dissolve>
透明度,取值范围1-100,缺省值100(完全不透明)|
|/gravity/<gravity>
||水印位置,参考水印位置参数表,缺省值为SouthEast(右下角)|
|/dx/<distanceX>
||横轴边距,单位:像素(px),缺省值为10|
|/dy/<distanceY>
||纵轴边距,单位:像素(px),缺省值为10|
请求报文格式
GET <imageDownloadURI>?<接口规格> HTTP/1.1
<ImageDownloadURI>?watermark/2/gravity/SouthEast/text/5Zu-54mH5rC05Y2w/font/6buR5L2T/fontsize/20/dx/15/dy/15
w = 600 # 原图宽为600像素
h = 400 # 原图高为400像素
dx = 15 # 横向边界
dy = 15 # 纵向边界
# load水印图片。假设水印图片宽100像素,高30像素
# 水印图片大小不能大于原图
mark_im_size = (100, 30)
# 获得偏移锚点 偏移参数为SouthEast
point = (w, h) = (600, 400)
# 根据偏移参数重置锚点
# 如果偏移后边界超出底图,则重置偏移位
re_point[0] = point[0] - (mark_im_size[0] + dx) = 485
re_point[1] = point[1] - (mark_im_size[1] + dy) = 355