用Glide-图片的压缩-图片压缩原理

前言:

这一节里面我们将介绍Glide如何对图片进行压缩,这一点在加载图片较多或者加载的图片像素很高的程序里面至关重要

Glide 系列目录

  • 1.Glide-入门教程
  • 2.Glide-占位图以及加载动画
  • 3.Glide-加载本地图片
  • 4.Glide-加载Gif
  • 5.Glide-绑定生命周期
  • 6.Glide-内存缓存与磁盘缓存
  • 7.Glide-通过Modules定制Glide
  • 8.Glide-自定义缓存
  • 9.Glide-图片的压缩
  • 10.Glide-图片预处理(圆角,高斯模糊等)
  • 11.Glide-图片的剪裁(ScaleType)
  • 12.Glide-源码详解

1.Android图片显示相关知识

这里会讲一下图片显示相关的基础知识,如果不关心的可以直接跳到第二点,不过建议是最好看一下


1.1图片质量分类

安卓图片显示的质量配置主要分为四种:

  • ARGB_8888 :32位图,带透明度,每个像素占4个字节
  • ARGB_4444 :16位图,带透明度,每个像素占2个字节
  • RGB_565 :16位图,不带透明度,每个像素占2个字节
  • ALPHA_8 :32位图,只有透明度,不带颜色,每个像素占4个字节

(A代表透明度,RGB代表红绿蓝:即颜色)


1.2图片默认质量

Picasso的默认质量是 ARGB_8888 
Glide的默认质量则为 RGB_565


1.3占用内存

加载一张4000 * 2000(一般手机拍摄的都超过这个像素)的图片

Picasso需要占用的内存为: 32MB

4000 * 2000 * 4 / 1024 / 1024 = 30 (MB)

Glide需要占用的内存为: 16MB

4000 * 2000 * 2 / 1024 / 1024 = 15 (MB)

也就是说只要同时加载几张图片,你的应用就会OOM(内存溢出了),最恐怖的是就算你的ImageView的宽高只有10px,同样会占用那么多内存,这就是为什么需要做图片压缩的原因了

2.图片质量的压缩或者提高

在Glide里面默认用的是RGB_565,如果需要修改,相对于Picasso来说会更加麻烦一些,在之前的文章中,讲到过如何修改Glide的图片质量,这里就不再做介绍了

通过GlideModule定制Glide 
http://blog.csdn.net/yulyu/article/details/55194237

3.图片尺寸的压缩或者拉伸(override)

通过调用override,就可以把图片压缩到相应的尺寸来显示了,类似这些被处理过的图片,就是之前文章中提到的RESULT(处理图)

Glide.with(this).load(mUrl).override(300,300).into(mIv);

注意,这里具体会压缩到什么尺寸还会根据很多条件来计算,所以最终压缩的结果的宽高会比较接近你的传值,但是不一定会完全相同,如果感兴趣的可以期待本系列后面的Glide源码解析中的具体介绍

(一般来说控件是什么尺寸就传入相应的宽高,这样是比较适合的压缩比例)

热门文章

  • Glide-内存缓存与磁盘缓存
  • Glide-自定义缓存
  • Glide-入门教程
  • Okhttputils终极封装
  • FaceBook推出的调试神器
  • Android代码优化工具

你可能感兴趣的:(Android,Android开发技巧,图片压缩,图片压缩,gilde)