Android:图片的压缩

源码地址:https://git.oschina.net/chunling/TestApp.git

稍微解释一下原理:

先定义一个方法getBitMapByte(byte[]data,intWidth,intHeight)里面的四个参数分别是:数据源的大小;自定义压缩之后打宽度大小;自定义压缩之后长度大小

这个方法返回值就是bitmap

步骤:1:先获取BitmapFactory里的options属性,主要研究options的属性俩个

            2:设置options.inJustDecodeBounds设置为true是否加载图片的边框信息不加载图片内容true就是内容不加载

            3:在通过options.inSampleSize()目标压缩尺寸进行压缩比率计算

            4:最后在设置options.inJustDecodeBounds为false加载这时候的图片内容是压缩过的

最重要的就是压缩比例怎么计算,这里谷歌官方给出了一个算法


Android:图片的压缩_第1张图片
压缩算法

这里的outWidth/outHeight是原始的宽度和高度

在最后也可以设置options.inPreferredConfig这个属性进行压缩;

这样在调用这个方法适合就可以进行自定义压缩了,想让图片变多小就自己设置了,最后代码也有详细的解释

你可能感兴趣的:(Android:图片的压缩)