文档

图片缩放

更新时间:

当您需要加速加载时间、节省存储空间、减少带宽费用或者以合适的尺寸呈现图片时,需要进行图片缩放。OSS支持通过图片缩放参数,调整Bucket内存储的图片大小。本文介绍对象存储OSS图片处理中的图片缩放功能参数及示例。

参数说明

操作名称:resize

指定宽高缩放

  • 参数说明

    名称

    是否必选

    描述

    取值范围

    m

    指定缩放的模式。

    • lfit(默认值):等比缩放,缩放图限制为指定w与h的矩形内的最大图片。

    • mfit:等比缩放,缩放图为延伸出指定w与h的矩形框外的最小图片。

    • fill:将原图等比缩放为延伸出指定w与h的矩形框外的最小图片,然后将超出的部分进行居中裁剪。

    • pad:将原图缩放为指定w与h的矩形内的最大图片,然后使用指定颜色居中填充空白部分。

    • fixed:固定宽高,强制缩放。

    关于不同模式的使用示例,请参见表格下方使用示例

    重要
    • 当缩放模式指定为lfit或mfit时,如果等比为小数,则四舍五入保留整数。

    • 当缩放模式指定为m模式下的任意值,且为目标缩放图的宽度w或目标缩放图的高度h指定了值,则目标缩放图的最长边l或目标缩放图的最短边s的取值不生效。

    w

    指定目标缩放图的宽度。

    [1,16384]

    h

    指定目标缩放图的高度。

    [1,16384]

    l

    指定目标缩放图的最长边。

    说明

    长边是指原尺寸与目标尺寸的比值大的边。例如,原图为400 px*200 px,缩放为800 px*100 px。由于(400/800)<(200/100),因此在该缩放操作中,200为长边。

    [1,16384]

    s

    指定目标缩放图的最短边。

    说明

    短边是指原尺寸与目标尺寸的比值小的边。例如,原图为400 px*200 px,缩放为800 px*100 px。由于(400/800)<(200/100),因此在该缩放操作中,400为短边。

    [1,16384]

    limit

    当目标图片分辨率大于原图分辨率时,是否进行缩放。

    • 1(默认值):返回按照原图分辨率转换的图片(可能和原图的体积不一样)。

    • 0:按指定参数进行缩放。

    说明

    GIF格式的图片只支持缩小,不支持放大。

    color

    是(仅当m为pad时)

    当缩放模式选择为pad(缩放填充)时,可以设置填充的颜色。

    RGB颜色值,例如:000000表示黑色,FFFFFF表示白色。

    默认值:FFFFFF(白色)

  • 使用示例

    原图大小为200 px*100 px,缩放参数为w=150 px,h=80 px。则不同的缩略模式,得到的缩放图如下:

    lfit

    • 等比缩放:要求缩放图的w/h等于原图的w/h。所以,若w=150 px,则h=75 px;若h=80 px,则w=160 px。

    • 限制在指定w与h的矩形内的最大图片:即缩放图的w*h不能大于150 px*80 px。

    通过以上条件得出缩略图大小为150 px*75 px。

    lfit

    mfit

    • 等比缩放:要求缩放图的w/h等于原图的w/h。所以,若w=150 px,则h=75 px;若h=80 px,则w=160 px。

    • 延伸出指定w与h的矩形框外的最小图片:即缩放图必须是大于150 px*80 px的一个最小矩形。

    通过以上条件得出缩放图的大小为160 px*80 px。

    mfit

    fill

    fill参数会先将图片等比缩放为延伸出指定w与h的矩形框外的最小图片,之后按照固定宽高进行裁剪。即先将原图缩放为160 px*80 px,之后将w居中裁剪为150 px,得到大小为150 px*80 px的缩放图。fill

    pad

    pad参数会先将图片等比缩放为限制在指定w与h的矩形内的最大图片,之后按照固定宽高进行填充。即先将原图缩放为150 px*75 px,之后将h居中填充到80 px,得到大小为150 px*80 px的缩放图。pad

    fixed

    fixed参数会将图片按照固定宽高进行缩放,若宽高与原图宽高比例不同,则会导致图片变形。fixed

按百分比缩放

名称

是否必选

描述

取值范围

p

按百分比缩放图片。

[1,1000]

小于100为缩小,大于100为放大。

注意事项

  • 原图限制

    • 图片格式只能是:JPG、PNG、BMP、GIF、WebP、TIFF。

      重要
      • GIF格式的图片只支持指定宽高缩小,不支持按百分比缩小(按百分比缩小的情况下,动态图会变成静态图)。

      • GIF格式的图片不支持放大。

    • 原图大小不能超过20 MB。如果您需要调整原图大小限制,请在配额中心申请

      说明

      仅图片缩放参数支持调整原图大小限制,其他图片处理参数不支持调整原图大小限制。

    • 宽或高不能超过30,000 px,且总像素不能超过2.5亿 px。

      动态图片(例如GIF图片)的像素计算方式为宽*高*图片帧数;非动态图片(例如PNG图片)的像素计算方式为宽*高

  • 缩放图限制

    宽或高不能超过16,384 px,且总像素不能超过16,777,216 px。

  • 缩放优先级

    如果图片处理URL中同时指定按宽高缩放和等比缩放参数,则只执行指定宽高缩放。

  • 缩放时只指定宽度或者高度

    • 等比缩放时,会按比例缩放图片。例如原图为200 px*100 px,将高缩放为100 px,则宽缩放为50 px。

    • 固定宽高缩放时,会将原图宽高按照指定值进行缩放。例如原图为200 px*100 px,将高缩放为100 px,则宽也缩放为100 px。

  • 目标缩放图比原图尺寸大时,默认返回原图。您可以增加limit_0参数放大图片。例如,https://oss-console-img-demo-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/example.jpg?x-oss-process=image/resize,w_500,limit_0

示例

您可以通过文件URL、SDK、API方式设置图片处理参数。本文以文件URL为例进行介绍。文件URL仅适用于公共访问的图片。如果是私有访问的图片,请使用SDK、API处理图片。更多信息,请参见图片处理操作方式

本文示例使用的Bucket为杭州地域名为oss-console-img-demo-cn-hangzhou的Bucket,原图大小为400 px*300 px,原图外网访问地址为:

常见问题

压缩后的图片读写权限为私有,如何正常访问?

必须对图片文件URL完成签名操作后才能正常访问。具体操作,请参见上传Object后如何获取访问URL

如何压缩私有访问权限的图片?

对于不允许匿名访问的私有图片文件,不支持通过文件URL直接添加参数的方式压缩图片,您需要通过SDK的方式将图片处理操作加入签名URL中。关于SDK方式的更多信息,请参见使用SDK处理图片

发送图片压缩请求是否计费?

发送图片压缩请求会产生请求费用。更多信息,请参见数据处理费用

请求缩放后的图片产生的流量是按照原图还是缩放后的图片计算?

请求缩放后的图片产生的流量费用按照缩放后的流量计算。例如原图为20 MB,缩放后大小为2 MB,图片产生的流量按照2 MB计算。

按宽高放大图片不生效怎么办?

按宽高放大图片时,需要设置limit参数为0,否则放大不生效。

例如:以下图片中,将图片高由原来的300 px放大为500 px。

https://oss-console-img-demo-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/example.jpg?x-oss-process=image/resize,h_500,limit_0

  • 本页导读 (1)
文档反馈