源码地址: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加载这时候的图片内容是压缩过的
最重要的就是压缩比例怎么计算,这里谷歌官方给出了一个算法
压缩算法这里的outWidth/outHeight是原始的宽度和高度
在最后也可以设置options.inPreferredConfig这个属性进行压缩;
这样在调用这个方法适合就可以进行自定义压缩了,想让图片变多小就自己设置了,最后代码也有详细的解释
网友评论