|
图片占用内存大小计算:宽*高*单位像素占字节数(RGB_8888占4,RGB_565占2);
质量压缩,只会改变图片文件体积大小,并不会改变图片内存大小。 quality(0-100)
bitmap.compress(Bitmap.Compress.JPEG, quality, outStream);
尺寸压缩(像素压缩),缩放图片像素来改变内存占用大小
方法一:ratio控制缩放比
Rect rect = new Rect(0, 0, bmp.getWidth()/ratio, bmp.getHeight/ratio);
canvas.drawBitmap(bmp, null, rect, null)
方法二:matrix
Bitmap.createBitmap(bmp, 0, 0, bmp.getWidth(), bmp.getHeight(), matrix, true);
采样率压缩,2的指数倍的采样,大大减少内存,但是不能精确压缩,图片质量不好控制。
BitmapFactory.Options.inSampleSize
参考文章
三种常见方法:https://www.cnblogs.com/Free-Thinker/p/6394723.html
比较详细的方法:https://www.jianshu.com/p/0b4854aae105
JNI使用Jpeg库: https://www.cnblogs.com/mc-ksuu/p/6443254.html
|