当前位置:首页 > 技术分享 > 正文内容

七牛云 无损压缩 图片基本处理(imageView2)

admin2个月前 (09-29)技术分享525

简介

imageView2 提供简单快捷的图片格式转换、缩略、质量变换功能。只需要填写几个参数,即可对图片进行缩略操作,生成各种缩略图。图片处理为收费项,详细的计费说明请参见 计费与定价

立即注册七牛云

每月 0 - 20 TB:免费

20 TB 以上:0.025 元/GB


功能说明
缩略等比缩放、设定目标宽高缩放等多种方式
格式转换格式转换、GIF 颜色控制
渐进显示图片渐进显示
质量变换对图片质量进行调节

限制说明

使用服务时有如下限制:

  • 原图限制

    • 原图格式支持: psdjpegpnggifwebptiffbmpavifheif(webp动图,仅支持持久化处理)

  • 输出限制

    • 输出为gif,一般处理时间比较长,建议优先使用持久化处理

  • 同步处理

    • 只支持 20MB 以内的图片,超过 20MB 的图片需要使用持久化处理

    • 处理前的gif最大帧数为 200

    • 处理前的图片wh参数不能超过3万像素,总像素不能超过1.5亿像素

    • 处理后的图片wh参数不能超过9999像素,总像素不得超过24999999(2500w-1)像素

  • 持久化处理

    • 图片文件大小没有限制

    • 处理前的gifwebp动图,最大帧数为 500

    • 处理前的图片wh参数不能超过3万像素,总像素不能超过1.5亿像素

    • 处理后的图片wh参数不能超过14999像素,总像素不得超过59999999(6000w-1)像素

参数说明

注意:接口规格不含任何空格与换行符。

imageView2/<mode>/w/<LongEdge>/h/<ShortEdge>/format/<Format>/interlace/<Interlace>/q/<Quality>/colors/<colors>/ignore-error/<ignoreError>

参数说明

其中 <mode> 必填,分为如下几种情况:

模式说明
/0/w/<LongEdge>/h/<ShortEdge>限定缩略图的长边最多为<LongEdge>,短边最多为<ShortEdge>,进行等比缩放,不裁剪。如果只指定 w 参数则表示限定长边(短边自适应),只指定 h 参数则表示限定短边(长边自适应)。
/1/w/<Width>/h/<Height>限定缩略图的宽最少为<Width>,高最少为<Height>,进行等比缩放,居中裁剪。转后的缩略图通常恰好是 <Width>x<Height> 的大小(有一个边缩放的时候会因为超出矩形框而被裁剪掉多余部分)。如果只指定 w 参数或只指定 h 参数,代表限定为长宽相等的正方图。
/2/w/<Width>/h/<Height>限定缩略图的宽最多为<Width>,高最多为<Height>,进行等比缩放,不裁剪。如果只指定 w 参数则表示限定宽(高自适应),只指定 h 参数则表示限定高(宽自适应)。它和模式0类似,区别只是限定宽和高,不是限定长边和短边。从应用场景来说,模式0适合移动设备上做缩略图,模式2适合PC上做缩略图。
/3/w/<Width>/h/<Height>限定缩略图的宽最少为<Width>,高最少为<Height>,进行等比缩放,不裁剪。如果只指定 w 参数或只指定 h 参数,代表长宽限定为同样的值。你可以理解为模式1是模式3的结果再做居中裁剪得到的。
/4/w/<LongEdge>/h/<ShortEdge>限定缩略图的长边最少为<LongEdge>,短边最少为<ShortEdge>,进行等比缩放,不裁剪。如果只指定 w 参数或只指定 h 参数,表示长边短边限定为同样的值。这个模式很适合在手持设备做图片的全屏查看(把这里的长边短边分别设为手机屏幕的分辨率即可),生成的图片尺寸刚好充满整个屏幕(某一个边可能会超出屏幕)。
/5/w/<LongEdge>/h/<ShortEdge>限定缩略图的长边最少为<LongEdge>,短边最少为<ShortEdge>,进行等比缩放,居中裁剪。如果只指定 w 参数或只指定 h 参数,表示长边短边限定为同样的值。同上模式4,但超出限定的矩形部分会被裁剪。
/format/<Format>新图的输出格式
取值范围:jpggifpngwebp等,默认为原图格式。注:当原图为heic时,不指定输出格式,会输出jpg。
/interlace/<Interlace>是否支持渐进显示
取值范围:1 支持渐进显示,0不支持渐进显示(默认为0)。
适用目标格式:jpg
效果:网速慢时,图片显示由模糊到清晰。
/colors/<colors>源图片为 GIF 时,控制输出 GIF 中不同颜色的数量,取值可为2、4、8、16、32、64、128或256,不使用该参数时的默认值为128。
/q/<Quality>新图的图片质量
取值范围是[1, 100],默认75。
七牛会根据原图质量算出一个修正值,取修正值和指定值中的小值。
注意:
● 指定值后面可以增加 !,表示强制使用指定值,如100!
● 只支持原图类型:jpg。
/ignore-error/<ignoreError>主要针对图片兼容性的问题导致无法处理,取值为1时,则处理失败时返回原图;
不设置此参数,默认处理失败时返回错误信息。

注意:

  • 所有模式都可以只指定w参数或只指定h参数,并获得合理结果。在w、h为限定最大值时,未指定某参数等价于将该参数设置为无穷大(自适应);在w、h为限定最小值时,未指定参数等于给定的参数,也就限定的矩形是正方形。

  • 新图的宽/高/长边/短边,不会比原图大,即本接口总是 缩小图片

  • 如果原图带有EXIF信息且包含Orientation字段,imageView2默认根据此字段的值进行自动旋转修正。

  • 当一张含有透明区域的图片,转换成不支持透明的格式jpg,bmp等时,透明区域填充白色。

  • <Quality>修正值算法:

    • 原图 quality <= 90:min[90, 原图quality*sqrt,原图长宽乘积/结果图片长宽乘积

    • 原图 quality > 90: 原图quality*sqrt,原图长宽乘积/结果图片长宽乘积

示例

  • 原图

    查看效果图

  • 裁剪正中部分,等比缩小生成200x200缩略图:

  • 查看效果图

    1. http://dn-odum9helk.qbox.me/resource/gogopher.jpg?imageView2/1/w/200/h/200
  • 宽度固定为200px,高度等比缩小,生成200x133缩略图:

  • 查看效果图

    1. http://dn-odum9helk.qbox.me/resource/gogopher.jpg?imageView2/2/w/200
  • 高度固定为200px,宽度等比缩小,生成300x200缩略图:

  • 查看效果图



    1. http://dn-odum9helk.qbox.me/resource/gogopher.jpg?imageView2/2/h/200
  • 渐进显示图片:

  • 查看效果图

    1. http://dn-odum9helk.qbox.me/resource/gogopher.jpg?imageView2/1/w/200/h/200/interlace/1
  • 设置图片质量为55:

  • 查看效果图

    1. https://dn-odum9helk.qbox.me/resource/gogopher.jpg?imageView2/1/w/200/h/200/q/55


扫描二维码推送至手机访问。

版权声明:本文由小刚刚技术博客发布,如需转载请注明出处。

本文链接:https://blog.bitefu.net/post/431.html

分享给朋友:

相关文章

php-cgi占用太多cpu资源而导致服务器响应过慢 利用进程和Linux的proc 定位耗资源文件

php-cgi占用太多cpu资源而导致服务器响应过慢 利用进程和Linux的proc 定位耗资源文件

在此环境下,一般php-cgi运行是非常稳定的,但也遇到过php-cgi占用太多cpu资源而导致服务器响应过慢,我所遇到的php-cgi进程占用cpu资源过多的原因有: 1. 一些php的扩展与php版本兼容存在问题,实践证明 e...

linux centos svn搭建及网站同步更新

以前上线的项目都是用ftp来更新的.后来技术人员多了,ftp的弊端就出来了.所以在这里给大家介绍一下我们现在正在使用的svn同步修改更新的方案.原理很简单主要是用到了svn的hooks功能.即本地提交到服务器的svn服务器.然后svn服务器...

mysql update不支持set子查询更新 的解决办法

mysql update不支持set子查询更新 的解决办法

先看示例:SELECT uin,account,password,create_user_uin_tree FROM sys_user结果:表中的create_user_uin_tree标识该条记录由谁创建。创...

php高效检测远程图片是否存在

php高效检测远程图片是否存在function img_exits($url){     $ch = curl_init();    &...

解决 SVN Skipped 'xxx' -- Node remains in conflict

更新命令:svn up提示代码:意思就是说 ,这个文件冲突了,你要解决下Updating '.': Skipped 'data/config.php' -- ...

安装Windows 10X 教你如何安装Win10X正式版 及下载地址

安装Windows 10X 教你如何安装Win10X正式版 及下载地址

安装Windows 10X 教你如何安装Win10X正式版:Windows 10X是Windows 10操作系统的新版本,主要针对双屏电脑。由于即将运行Windows 10X的双屏电脑(例如即将面世的Surface Neo)的开发遇到挫折,...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。