Android中图片压缩方案

图片占用内存大小计算:宽*高*单位像素占字节数(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

你可能感兴趣的:(Android)