操作場景
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矩形框內的最大圖形 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的原因,當同時指定了寬高縮放和百分比縮放的參數時,以寬高為準。