阿里云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格式的图片支持指定宽高缩放,不支持等比缩放(等比缩放情况下,动态图会变成静态图)。
    • 文件大小不能超过20 MB。
    • 原图单边大小不能超过30000px。
    • 原图总像素不能超过2.5亿px。
  • 对于缩略图:对缩放后的图片大小有限制,目标缩略图宽与高的乘积不能超过4096px*4096px,且单边长度不能超过4096px。
  • 关于长短边:长边是指原尺寸与目标尺寸的比值大的那条边,短边同理。例如原图为400px*200px,缩放为800px*100px,由于 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 示例