Bitmap压缩(二次采样)
来源:互联网 发布:分水岭算法 过分割 编辑:程序博客网 时间:2024/06/16 11:31
<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">很多时候我们在加载图片的时候并不需要把原图加载出来,例如像打开微信图片列表,可能由于控件的大小,用户视觉等等的原因,把一张原图加载出来和加载一张缩略图的效果是差不多的,这时候加载一张原图的话反而只会耗费过多的内存空间,像微信图片列表一页能够显示15张(3x5),原图的话3m左右,那一页就要耗费45m的内存了,所以这时候</span><span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">就需要将图片进行压缩处理了。</span>
Bitmap二次采样
第一次采样:是为了得到从 Bitmap图像尺寸--->指定图片大小尺寸 的缩放比例。
第二次采样:利用得到缩放比例对Bitmap图像进行缩放。
//******第一次采样******* File file = new File("/mnt/shared/Image/map.bmp"); //这里是指我手机中一张127mb的图片的路径 BitmapFactory.Options option = new BitmapFactory.Options(); //获取option对象 option.inJustDecodeBounds = true; //设置为值获取图片的边界像素点,是为了后面计算出图片的宽高 Bitmap bitmap = null ; bitmap = BitmapFactory.decodeFile(file.getAbsolutePath(),option); Log.d("bigname_log", "btnOnClick: "+option.outHeight+"."+option.outWidth); //6500,7400大概的,忘记了具体多少 int fastWidth = imageview.getWidth(); //指定尺寸 256*256 int fastHeight = imageview.getHeight(); int simpleSize = 1 ; //缩放比例*注意缩放比例只能是2的n次方,如果不是则自动就近取值。 while (option.outWidth / simpleSize > fastWidth || option.outHeight / simpleSize > fastHeight) { <span style="font-family: Arial, Helvetica, sans-serif;">//计算缩放比例</span> simpleSize *= 2; } option.inSampleSize = simpleSize ; //将计算得到的缩放比例设置到option中 Log.d("bigname_log", "btnOnClick: 缩放比例"+simpleSize); //*********第二次采样******** option.inJustDecodeBounds = false; //重新把计算边界像素设为false,不然图片无法显示 option.inPreferredConfig = Bitmap.Config.ARGB_8888 ; //可以不设 bitmap = BitmapFactory.decodeFile(file.getAbsolutePath(), option); Log.d("bigname_log", "btnOnClick: "+option.outHeight+"."+option.outWidth); //最后bitmap压缩为:176*248 imageview.setImageBitmap(bitmap);但压缩后的bitmap显示效果并没差多少。
另外再说一下 option.inPreferredConfig = Bitmap.Config.ARGB_8888 ;
这是设置图片色彩的属性。
A:透明度 8位
R:红色 8位
G:绿色 8位
B:蓝色 8位
还有三种设置值:
ARGB_4444 分别占4位的意思
RGB_565 分别占5、6、5位 ,没有透明度的图片
ALPHA_8 透明度占8位 ,只是用于只有透明度的图片
这四种色彩设置占位越多则色彩效果越好,是偏向内存还是色彩效果就看自己的取舍了。
0 0
- Bitmap压缩(二次采样)
- Android之Bitmap二次采样 (压缩)
- Bitmap二次采样以及压缩另一种方式
- 大位图二次采样压缩解决Bitmap OOM
- Bitmap二次采样
- Android bitmap二次采样
- bitmap 二次采样
- Bitmap二次采样
- Bitmap 二次采样
- Bitmap的二次采样
- Bitmap 二次采样实现
- bitmap的二次采样
- BitMap二次采样
- Bitmap的二次采样
- Bitmap二次采样
- WebView&&BitMap二次采样
- 21、Bitmap二次采样
- Bitmap二次采样
- Toast总结一
- 搭建nghttp2.0作为apns服务的代理的相关问题总结
- 前端框架Avalon:简介
- 学生会竞选发言稿
- 利用multimap给数据高效分类(1)
- Bitmap压缩(二次采样)
- 【算法】给定能随机生成整数1到5的函数,写出能随机生成整数1到7的函数
- 页标题用SpringMVC 3和tiles2本土化
- Poj 2431 Expedition【优先队列+贪心】
- C#小程序实现闰年判断、月份的天数以及所属季度的判断
- poj3468 线段树
- 使用opnalpr训练目标检测级联分类器
- JZOJ4787. 【NOIP2016提高A组模拟9.17】数格子
- dumpbin方法选项明细 及常用参数说明