缩放/裁剪/旋转/格式转换

最近更新时间:2019-04-02 16:30:50

图片处理


缩放、裁剪、自动旋转、格式转换

接口

imageScale

描述

该功能提供对图片的缩放、裁剪、旋转和格式转换等功能。

缩放具有多种方式:

  • 只设置缩略宽,按照宽进行等比例缩放;
  • 只设置缩略高,按照高进行等比例缩放;
  • 设置宽和高,在没有设置短边优先的情况下按照长边进行等比例缩放;
  • 设置宽和高,在设置短边优先的情况下按照短边进行等比例缩放;
  • 设置图片及背景的宽和高,进行缩略填充(BMP格式图片文件建议使用管道方式进行缩略填充)。

裁剪具有三种使用方式:

  • 居中裁剪,在进行缩放以后对超出设定范围外的进行居中裁剪,该裁剪只会发生在设定了缩略宽和高的情况下;
  • 在设定了固定宽和高的情况下,选择裁剪会按照固定的宽和高居中裁剪。
  • 任意位置裁剪,设置起始横坐标和起始纵坐标,设置裁剪宽和高进行裁剪。

旋转:

  • 按照Exif中包含的旋转角度进行选转。

格式转换:

  • 可按照指定图片格式输出,输出格式支持JPG、JPEG、PNG、GIF、WBMP、BMP、WEBP。

请注意缩略、裁剪、旋转、格式转换四个操作的顺序是先进行旋转,然后进行缩略,然后裁剪,最后进行格式转换,与指定参数顺序无关。

权限

该接口操作需要具备GetObject权限,假如获取对象不存在,你可能存在以下两种返回:

  • 假如用户具有该对象所在Bucket的ListBucket权限,会返回状态码404错误;
  • 假如用户不具备该对象所在Bucket的ListBucket权限,会返回状态码403错误。

请求

语法
https://BucketName.${bucket所在region的域名}/object@base@
    tag=imgScale   
    &m=<mode>   
    &w=<width>   
    &h=<height>   
    &q=<quality>   
    &F=<format>   
    &r=<auto-orient>   
    &c=<cut>   
    &f=<fixed>     
    &s=<strip>
    &cox=<x-coordinate>
    &coy=<y-coordinate>
    &rotate=<degree>
    &et=<extent>
    &etw=<extent width>
    &eth=<extent height>
    &etc=<extent colour>    HTTP/1.1
Host: BucketName.${bucket所在region的域名}
请求参数:
参数名称 必填 解释说明
tag 操作标志
m 缩放优先边,默认值m=0
m=0:长边优先缩放,缩放按照较长边的缩放比例进行缩放,不剪裁
m=1:短边优先缩放,缩放按照较短边的缩放比例进行缩放,不剪裁
m=2:限定缩略图的宽最少为<width>,高最少为<height>,进行等比缩放
w w/h必须有一个 指定目标缩略图的宽度,单位:像素(px)。 当单独使用时,代表按照宽度等比缩放。取值范围:1-4096
h w/h必须有一个 指定目标缩略图的高度,单位:像素(px)。 当单独使用时,代表按照高度等比缩放。取值范围:1-4096
q 决定 jpg 图片的相对quality,对原图压缩,范围为0-100 , 0表示高压缩低质量,100表示低压缩,高质量。默认q=75。
F 指定目标缩略图的输出格式,默认按照原图格式输出。输出格式支持JPG、JPEG、PNG、GIF、WBMP、BMP、WEBP。
r 有些相机拍的照片会出现旋转,本参数就是否根据原图 EXIF 信息自动适应方向,默认值r=0
r=0:按原图默认处理
r=1:按原图 EXIF 信息自动旋转图片
r=2:自定义旋转角度,旋转角度由<rotate>参数指定
c 是否裁剪,默认值是:0(否)对缩放后超出范围的图片内容进行剪裁,这种情况一般发生在按照短边优先的等比缩放中。缩放会以图片中线为中心,进行上下/左右的 裁剪,得到相应的尺寸
f 是否固定宽高,默认值f=0(否)
f=1:以图片中线为中心,裁剪指定w和h的区域,此参数与参数 cut 配合使用,当使用 f 时会固定图片的宽高,进行非缩放裁剪
s 是否支持去除元数据。默认值1,0表示否,1表示是
cox 裁剪起始横坐标,此参数与参数cut及参数fixed配合使用,当不设置裁剪起始横坐标时则默认居中裁剪
coy 裁剪起始纵坐标,此参数与参数cut及参数fixed配合使用,当不设置裁剪起始纵坐标时则默认居中裁剪
rotate 旋转角度,取值范围1-360,缺省为不旋转。自定义旋转角度需指定参数<r>等于2
et 是否增加背景,默认值是0(否)。对缩放后空白范围的图片内容进行背景填充。
etw 指定背景宽度,单位:像素(px),默认值是原图最大宽度(若eth与etw均没有设置,则默认取原图高度和宽度的最大值,构成正方形;若只设置etw,则高度默认为原图高度)。取值范围:1-4096
eth 指定背景高度,单位:像素(px),默认值是原图最大高度(若eth与etw均没有设置,则默认取原图高度和宽度的最大值,构成正方形;若只设置eth,则宽度默认为原图宽度)。取值范围:1-4096
etc 指定背景颜色,支持RRGGBB格式,默认值是FFFFFF(透明色为“transparent”,透明背景色支持图片格式为PNG、GIF)。
请求头部

该请求不需要设置特殊的头部。

响应:

响应头部
头部名称 必填 说明
Content-Type MIME类型,成功时为图片固定的MIME类型image/*,失败时为application/json
响应内容:

如果请求处理成功,返回图片的二进制图片数据。

特殊错误:
HttpCode 含义
200 操作成功
400 请求报文格式错误
404 资源不存在
500 服务器端操作失败。
如果遇到此种错误,请及时联系我们。

示例

只设置缩略宽,按照宽进行等比例缩放:

宽度为200px

http://kss.ksyun.com/ks3/image_deal/suiyi.jpg@base@tag=imgScale&w=200

示例图片

只设置缩略高,按照高进行等比例缩放:

高度为200px

http://kss.ksyun.com/ks3/image_deal/suiyi.jpg@base@tag=imgScale&h=200

示例图片

设置宽和高,在没有设置短边优先的情况下按照长边进行等比例缩放:

高度为200px,宽度为100px

http://kss.ksyun.com/ks3/image_deal/suiyi.jpg@base@tag=imgScale&h=200&w=100&m=0

示例图片

设置宽和高,在设置短边优先的情况下按照短边进行等比例缩放:

高度为200px,宽度为100px,m为1

http://kss.ksyun.com/ks3/image_deal/suiyi.jpg@base@tag=imgScale&h=200&w=100&m=1

示例图片

居中裁剪,在进行缩放以后对超出设定范围外的进行居中裁剪:

高度为30px,宽度为200px

http://kss.ksyun.com/ks3/image_deal/suiyi.jpg@base@tag=imgScale&h=30&w=200&m=0&c=1

示例图片

高度为200px,宽度为20px

http://ks3.kss.ksyun.com/image_deal/suiyi.jpg@base@tag=imgScale&h=200&w=20&m=1&c=1

示例图片

固定宽和高的情况下,按照固定的宽和高居中裁剪:

高度为100px,宽度为50px

http://ks3.kss.ksyun.com/image_deal/suiyi.jpg@base@tag=imgScale&h=100&w=50&c=1&f=1

示例图片

任意位置裁剪,起始横坐标和起始纵坐标必须在图片以内,设置起始横坐标和起始纵坐标进行裁剪:

起始横坐标为100,起始纵坐标为50,裁剪高度为200px,宽度为100px

http://ks3.kss.ksyun.com/image_deal/suiyi.jpg@base@tag=imgScale&w=100&h=200&c=1&f=1&cox=100&coy=50

示例图片

将图片按长边缩略到100x100, 然后按红色填充:

背景高度为100px,背景宽度为100px,图片宽度(长边)为100px

http://ks3.kss.ksyun.com/image_deal/suiyi.jpg@base@tag=imgscale&m=0&w=100&et=1&eth=100&etw=100&etc=FF0000

1.png

将图片按半径100裁剪内切圆,然后转换为png格式:

图片内切圆半径100px

http://ks3.kss.ksyun.com/image_deal/suiyi.jpg@base@tag=imgCircle&i=100&F=png

suiyi.png

金山云,开启您的云计算之旅

立即注册