Android Progressive JPEG 图片由模糊到清晰

我们在浏览网页的时候,经常会看到一些网络图片由模糊变的清晰的过程。在android 开发中,我们也会遇到这样的需求。那么这个是怎么实现的呢?

一,背景知识:

技术标签 关键字 Progressive JPEG。

相关知识点:jpeg 的保存格式:(参考:安卓的渐进式jpeg

JPEG文件有两种保存方式,分别是Baseline JPEG(标准型)和Progressive JPEG(渐进式)。两种格式有相同尺寸以及图像数据,扩展名也是相同的,唯一的区别是二者显示的方式不同

  • Baseline JPEG: 这种类型的JPEG文件存储方式是按从上到下的扫描方式,把每一行顺序的保存在JPEG文件中。打开这个文件显示它的内容时,数据将按照存储时的顺序从上到下一行一行的被显示出来,直到所有的数据都被读完,就完成了整张图片的显示。如果文件较大或者网络下载速度较慢,那么就会看到图片被一行行加载的效果
  • Progressive JPEG: 文件包含多次扫描,这些扫描顺寻的存储在JPEG文件中。打开文件过程中,会先显示整个图片的模糊轮廓,随着扫描次数的增加,图片变得越来越清晰。这种格式的主要优点是在网络较慢的情况下,可以看到图片的轮廓知道正在加载的图片大概是什么。在一些网站打开较大图片时,有时就能看到图片由模糊再到清晰的过程。

二,如何实现

  1. facebook 开源的图片加载引擎依旧支持。地址:https://github.com/facebook/fresco
  2.  自己支持实现:参考地址:ProgressiveJpeg介绍与在Android中的使用

          原理:将图片文件中标记的每一个完整图像帧(由模糊到清晰)的图像数据,直接渲染到视图上。

    3. 针对非progressive jpeg 的图片,也有一次decode 出图片,然后自己做模糊的方案。但是这样对提升用户体验并没有什么好处。

 

 

 

 

转载于:https://my.oschina.net/u/592116/blog/2874790

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值