美文网首页
Android-Bitmap压缩总结

Android-Bitmap压缩总结

作者: lioilwin | 来源:发表于2017-08-15 22:23 被阅读625次

Bitmap占用内存 = 长 X 宽 X 1个像素所占字节,降低任意参数就可减少Bitmap占用内存!

一、质量压缩bitmap.compress(···quality···)


ByteArrayOutputStream baos = new ByteArrayOutputStream();
bitmap.compress(CompressFormat.JPEG, 10, baos);
byte[] bytes = baos.toByteArray();
/*
bitmap.compress(CompressFormat.JPEG, 10, baos)只是改变位深及透明度,没有改变长、宽和1个像素所占字节,
BitmapFactory.decodeByteArray(bytes, 0, bytes.length)也没有改变长宽像素,故bitmap占用内存不变,
但bytes本身变小了,适合存储和传输!
*/
bitmap = BitmapFactory.decodeByteArray(bytes, 0, bytes.length);

二、取样压缩BitmapFactory.decode···(···options)


BitmapFactory.Options options = new BitmapFactory.Options();
/* 
ALPHA_8表示只有透明度A=8,没有颜色RGB, 1个像素占8位=1字节。
ARGB_4444表示A=4,R=4,G=4,B=4, 1个像素占4+4+4+4=16位=2字节,ARGB_4444的画质惨不忍睹,所以弃用。
ARGB_8888表示A=8,R=8,G=8,B=8, 1个像素占8+8+8+8=32位=4字节 。
RGB_565表示没有透明度A,R=5,G=6,B=5, 1个像素占5+6+5=16位=2字节。
如果没有透明度A需求,将ARGB_8888改为RGB_565可以降低1个像素所占字节,Bitmap占用内存也就降低
*/
options.inPreferredConfig = Bitmap.Config.RGB_565;
// 设置取样大小,假设inSampleSize为2,则长和宽都变为原来1/2,Bitmap占用内存也就降低
options.inSampleSize = 2;
bitmap = BitmapFactory.decode···(···options);

三、矩阵压缩Bitmap.createBitmap(···matrix···)


// 使用Matrix.setScale(···)让新Bitmap长宽缩小,新Bitmap占用内存也就降低
// 方法1
bitmap = Bitmap.createScaledBitmap(bitmap, 160, 160, true); //内部调用了Bitmap.createBitmap(···matrix···)
// 方法2
Matrix matrix = new Matrix();
matrix.setScale(0.5f, 0.5f);
bitmap = Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(), bitmap.getHeight(), matrix, true);

简书: http://www.jianshu.com/p/72e2161a3714
CSDN博客: http://blog.csdn.net/qq_32115439/article/details/77201735
GitHub博客:http://lioil.win/2016/09/28/Bitmap-Compress.html
Coding博客:http://c.lioil.win/2016/09/28/Bitmap-Compress.html

相关文章

  • Android-Bitmap压缩总结

    Bitmap占用内存 = 长 X 宽 X 1个像素所占字节,降低任意参数就可减少Bitmap占用内存! 一、质量压...

  • Linux tar.gz zip 解压缩 压缩命令

    压缩 解压 总结

  • tar命令

    压缩 解压 总结

  • liunx tar压缩与解压

    压缩 解压 总结

  • Android-Bitmap

    参考:https://www.jianshu.com/p/3c5ac5fdb62a 作为开发者,我们经常和Bitm...

  • Android图片压缩

    摘要:对android 上图片压缩,其实总结起来基本可以分为两类压缩:尺寸压缩和质量压缩, 尺寸压缩其实也可以理解...

  • Android-Bitmap优化

    概述 在日常开发中我们经常遇到加载图片报出oom的错误,我们要解决这个问题,首先要明白oom代表out of me...

  • Linux 压缩解压缩总结

    本文主要介绍gzip,zcat和bzip2,zcat这两组命令的使用。gzip可以将给定文件进行压缩,压缩后文件的...

  • 2018年7月17日   日精进

    今天有点忙 换宝马的压缩机 不知道是上次没装好还是压缩机有问题 这次还是压缩机坏了 总结 不管做...

  • 图片压缩之优化篇

    之前曾经对Android中图片中的压缩方式进行分析和总结。详见图片压缩篇。基本涵盖了基础的压缩方法和思路。但是在实...

网友评论

      本文标题:Android-Bitmap压缩总结

      本文链接:https://www.haomeiwen.com/subject/mpqbrxtx.html