阿里云OSS的图片处理功能支持处理上传至OSS的图片文件,本文主要介绍如何进行图片缩放。

图片缩放参数

操作名称:resize

  • 指定宽高缩放
    名称 描述 取值范围
    m 指定缩略的模式:
    • lfit:等比缩放,限制在指定w与h的矩形内的最大图片。
    • mfit:等比缩放,延伸出指定w与h的矩形框外的最小图片。
    • fill:固定宽高,将延伸出指定w与h的矩形框外的最小图片进行居中裁剪。
    • pad:固定宽高,缩略填充。
    • fixed:固定宽高,强制缩略。
    lfitmfitfillpadfixed,默认为 lfit
    w 指定目标缩略图的宽度。 1-4096
    h 指定目标缩略图的高度。 1-4096
    l 指定目标缩略图的最长边。 1-4096
    s 指定目标缩略图的最短边。 1-4096
    limit 指定当目标缩略图大于原图时是否处理。值是 1 表示不处理;值是 0 表示处理。 0/1, 默认是 1
    color 当缩放模式选择为 pad(缩略填充)时,可以选择填充的颜色(默认是白色)参数的填写方式:采用 16 进制颜色码表示,如 00FF00(绿色)。 [000000-FFFFFF]
  • 按比例缩放
    名称 描述 取值范围
    p 倍数百分比。 小于 100,即是缩小,大于 100 即是放大。 1-1000

图片缩放注意事项

  • 对于原图:
    • 格式只能是:jpg、png、bmp、gif、webp、tiff。其中gif格式的图片不支持进行指定宽高缩放,仅支持进行按比例缩放。
    • 文件大小不能超过 20MB。
    • 使用图片旋转时图片的宽或者高不能超过 4096。
    • 原图单边大小不能超过30,000。
  • 对于缩略图:对缩略后的图片大小有限制,目标缩略图宽与高的乘积不能超过 4096x4096,且单边长度不能超过 4096。
  • 关于长短边:“长边”是指原尺寸与目标尺寸的比值大的那条边,“短边”同理。例如,原图400x200,缩放为 800x100,由于 400/800=0.5,200/100=2,0.5 < 2,所以在这个缩放中 200 那条是长边,400 那条是短边。
  • 当只指定宽度或者高度时,在等比缩放的情况下,都会默认进行单边的缩放。在固定宽高的模式下,会默认宽高一样的情况下进行缩略。
  • 如果只指定宽度或者高度,原图按原图格式返回。如果想保存成其他格式,详细可以查看质量变换格式转换
  • 调用 resize,默认是不允许放大。即如果请求的图片比原图大,那么返回的仍然是原图。如果想取到放大的图片,即增加参数调用 limit_0 (如:https://image-demo.oss-cn-hangzhou.aliyuncs.com/example.jpg?x-oss-process=image/resize,w_500,limit_0

图片缩放示例

SDK 示例