本文帮助您了解图片缩放。
ZOS支持图片缩放,您可以通过图片缩放参数,对图片进行指定高与宽缩放和百分比缩放。
• 支持的原图格式:JPG、PNG、GIF、WebP、TIFF。GIF动图只支持指定高与宽缩放,不支持百分比缩放。
• 原图大小不能超过20MB。宽或高不能超过30,000 px,且总像素不能超过2.5亿 px。
• 缩放图在百分比缩放模式下宽或高不能超过16,384 px,且总像素不能超过16,777,216 px。指定高与宽缩放的模式下,宽或高不能超过4,096 px。
说明 动态图片(例如GIF图片)的像素计算方式为宽*高*图片帧数;非动态图片(例如PNG图片)的像素计算方式为宽*高。 |
操作符:resize
参数名称 | 参数用途 | 取值 | 是否必须 |
w | 指定目标缩放图宽度 | [1,4096] | 是 |
h | 指定目标缩放图高度 | [1,4096] | 是 |
m | 指定缩放模式 | • lfit(默认值):等比缩放,目标缩放图为指定w和h矩形框内的最大图形 | 否 |
color | 缩放模式为pad时,指定填充颜色 | RGB颜色值,默认FFFFFF(白色) | 否(仅当m为pad模式时使用) |
limit | 指定目标缩放图大于原图时是否缩放 | • 1(默认):目标缩放图大于原图时返回原图 | 否 |
原图大小为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放大 | 是 |
1. 按照高与宽缩放时,指定大小大于原图时,不生效?
答:需要指定limit参数为0,若limit指定为1,且指定的w和h只有一侧大于原图,则大于原图的那一侧会取原图的长度。
2. 按照w和h缩放,没有根据预想的w和h值进行缩放?
答:参考缩放类型,可通过fixed模式强制缩放值指定的宽高。
3. 指定p缩放时不生效?
答:可能是同时指定了w和h和p的原因,当同时指定了宽高缩放和百分比缩放的参数时,以宽高为准。