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

最近更新时间:2019-09-05 18:53:11

图片处理


缩放、裁剪、自动旋转、格式转换、渐进显示

接口

imageScale

描述

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

缩放具有多种方式:

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

裁剪具有三种使用方式:

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

旋转:

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

格式转换:

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

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

渐进显示:

图片格式为 jpg或jpeg 时有两种呈现方式:

  • 自上而下的扫描式
  • 先模糊后逐渐清晰(在网络环境比较差时明显)

默认保存为第一种,如果要指定先模糊后清晰的呈现方式,请使用渐进显示参数。

权限

该接口操作需要具备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 缩略模式 0 0长边优先缩放,缩放按照较长边的缩放比例进行缩放,不剪裁
1短边优先缩放,缩放按照较短边的缩放比例进行缩放,不剪裁
2限定缩略图的宽最少为<width>,高最少为<height>,进行等比缩放
w 缩略宽度/裁剪宽度 w/h必须有一个 1-4096 指定目标缩略图或裁剪图的宽度,单位:像素(px)。 当单独使用时,代表按照宽度等比缩放
h 缩略高度/裁剪高度 w/h必须有一个 1-4096 指定目标缩略图或裁剪图的高度,单位:像素(px)。 当单独使用时,代表按照高度等比缩放
q 图片质量 75 0-100 决定 jpg 图片的相对quality,对原图压缩,0表示高压缩低质量,100表示低压缩高质量
F 目标缩略图输出格式 默认按照原图格式输出。输出格式支持JPG、JPEG、PNG、GIF、WBMP、BMP、WEBP
r 旋转模式 0 0按原图默认处理
1按原图 EXIF 信息自动旋转图片
2自定义旋转角度,旋转角度由<rotate>参数指定
c 是否裁剪 0 0不进行裁剪
1对缩放后超出范围的图片内容进行剪裁,这种情况一般发生在按照短边优先的等比缩放中。缩放会以图片中线为中心,进行上下/左右的 裁剪,得到相应的尺寸
f 是否固定宽高 0 0不固定宽高
1以图片中线为中心,裁剪指定w和h的区域,此参数与参数 cut 配合使用,当使用 f 时会固定图片的宽高,进行非缩放裁剪
s 是否支持去除元数据 1 0 不支持去除元数据
1 支持去除元数据
cox 裁剪起始横坐标 居中裁剪 此参数与参数cut及参数fixed配合使用,当不设置裁剪起始横坐标时则默认居中裁剪
coy 裁剪起始纵坐标 居中裁剪 此参数与参数cut及参数fixed配合使用,当不设置裁剪起始纵坐标时则默认居中裁剪
rotate 旋转角度 0 1-360 缺省为不旋转。自定义旋转角度需指定参数<r>等于2
et 是否增加背景 0 0不增加
1对缩放后空白范围的图片内容进行背景填充
etw 指定背景宽度 原图最大宽度 1-4096 单位:像素(px),若eth与etw均没有设置,则默认取原图高度和宽度的最大值,构成正方形;若只设置etw,则高度默认为原图高度
eth 指定背景高度 原图最大高度 1-4096 单位:像素(px),若eth与etw均没有设置,则默认取原图高度和宽度的最大值,构成正方形;若只设置eth,则宽度默认为原图宽度
etc 指定背景颜色 FFFFFF 支持RRGGBB格式(透明色为“transparent”,透明背景色支持图片格式为PNG、GIF)
interlace 渐进显示 0 0表示保存成普通的jpg、jpeg格式
1表示保存成渐进显示的jpg、jpeg格式
请求头部

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

响应:

响应头部
头部名称 必填 说明
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

渐进显示:

对jpg或jpeg格式的图片指定先模糊后清晰的呈现方式

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

suiyi.png

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

注册有礼