操作场景
ZOS支持图片缩放,您可以通过图片缩放参数,对图片进行指定高与宽缩放和百分比缩放。
约束与限制
- 支持的原图格式:JPG、PNG、GIF、WebP、TIFF。GIF动图只支持指定高与宽缩放,不支持百分比缩放。
- 原图大小不能超过20MB。宽或高不能超过30,000 px,且总像素不能超过2.5亿 px。
- 缩放图在百分比缩放模式下宽或高不能超过16,384 px,且总像素不能超过16,777,216 px。指定高与宽缩放的模式下,宽或高不能超过4,096 px。
参数说明
操作符:resize
指定高与宽缩放
参数名称 | 参数用途 | 取值 | 是否必须 |
---|---|---|---|
w | 指定目标缩放图宽度 | [1,4096] | 是 |
h | 指定目标缩放图高度 | [1,4096] | 是 |
m | 指定缩放模式 | lfit(默认值):等比缩放,目标缩放图为指定w和h矩形框内的最大图形 mfit:等比缩放,目标缩放图为延伸出指定w和h矩形框外的最小图形 fill:将原图等比缩放为延伸出指定w与h的矩形框外的最小图片,之后将超出的部分进行居中裁剪 pad:将原图等比缩放为指定w和h矩形框内最大的图形,然后使用color指定的颜色将矩形框内剩余部分进行填充 fixed:固定宽高,强制缩放 |
否 |
color | 缩放模式为pad时,指定填充颜色 | RGB颜色值,默认FFFFFF(白色) | 否(仅当m为pad模式时使用) |
limit | 指定目标缩放图大于原图时是否缩放 | 1(默认):目标缩放图大于原图时返回原图 0:按指定参数缩放GIF格式的图片只支持缩小,不支持放大 |
否 |
示例
原图大小为400 px*200 px。设置w=300 px,h=160 px,使用不同的缩放模式进行缩放,结果如下:
-
m_fixed
image/resize,w_300,h_160,m_fixed
:fixed会将图片按照指定的宽高进行缩放,原图为400 px*200 px,缩放后为300 px*160 px,会导致原图缩放后,比例被拉高。 -
pad
image/resize,w_300,h_160,m_pad
:pad模式会先将图片等比缩放至指定的宽高限制下的矩形内最大图片,当前比例为300 px *150 px,剩余h会将缩放后的图片居中,其余部分填充白色背景,因此会生成一个300 px *160 px的缩放图,但是h=(0,5)和h=(155,160)两部分区域为白色背景。 -
fill
image/resize,w_300,h_160,m_fill
:fill模式会将图片等比缩放为指定宽和高的矩形外的最小图片,即大小为320 px *160 px。而后将图片居中,并将两侧裁剪,最终w=(0,10)和w=(310,320)两部分会被裁剪,形成300 px *160 px的图片。 -
mfit
image/resize,w_300,h_160,m_mfit
:mfit模式为按照原图比例进行缩放,根据宽高计算出矩形外的最小矩形,即320 px *160 px的图片,作为缩放的结果。 -
lfit
image/resize,w_300,h_160,m_lfit
:lfit模式与mfit相对应,lfit会计算出,缩放指定的宽高的矩形内的最大矩形,即300 px *150 px大小,形成最终缩放图。
百分比缩放
参数名称 | 参数用途 | 取值 | 是否必须 |
---|---|---|---|
p | 按百分比进行缩放 | [1,1000] 小于100缩小,大于100放大 |
是 |
常见问题
- 按照高与宽缩放时,指定大小大于原图时,不生效?
答:需要指定limit参数为0,若limit指定为1,且指定的w和h只有一侧大于原图,则大于原图的那一侧会取原图的长度。 - 按照w和h缩放,没有根据预想的w和h值进行缩放?
答:参考缩放类型,可通过fixed模式强制缩放值指定的宽高。 - 指定p缩放时不生效?
答:可能是同时指定了w和h和p的原因,当同时指定了宽高缩放和百分比缩放的参数时,以宽高为准。