安卓压缩图片(解决OOM)
来源:互联网 发布:文明6 mac配置 编辑:程序博客网 时间:2024/05/16 00:29
public Bitmap getimage(String srcPath) {BitmapFactory.Options newOpts = new BitmapFactory.Options();// 开始读入图片,此时把options.inJustDecodeBounds 设回true了newOpts.inJustDecodeBounds = true;Bitmap bitmap = BitmapFactory.decodeFile(srcPath, newOpts);// 此时返回bm为空newOpts.inJustDecodeBounds = false;int w = newOpts.outWidth;int h = newOpts.outHeight;// 现在主流手机比较多是800*480分辨率,所以高和宽我们设置为float hh = 800f;float ww = 480f;// 缩放比,只用高或者宽其中一个数据进行计算即可int be = 1;// be=1表示不缩放if (w > h && w > ww) {// 如果宽度大的话根据宽度固定大小缩放be = (int) (newOpts.outWidth / ww);} else if (w < h && h > hh) {// 如果高度高的话根据宽度固定大小缩放be = (int) (newOpts.outHeight / hh);}if (be <= 0)be = 1;newOpts.inSampleSize = be;// 设置缩放比例// 重新读入图片,注意此时已经把options.inJustDecodeBounds 设回false了bitmap = compressImage(BitmapFactory.decodeFile(srcPath, newOpts));return bitmap;// 压缩好比例大小后再进行质量压缩}public Bitmap compressImage(Bitmap image) {ByteArrayOutputStream baos = new ByteArrayOutputStream();// 质量压缩方法,这里100表示不压缩,把压缩后的数据存放到baos中image.compress(Bitmap.CompressFormat.JPEG, 100, baos);int options = 100;// 循环判断如果压缩后图片是否大于300kb,大于继续压缩while (baos.toByteArray().length / 1024 > 300) {baos.reset();// 重置baos即清空baosimage.compress(Bitmap.CompressFormat.JPEG, options, baos);// 这里压缩options%,把压缩后的数据存放到baos中options -= 10;// 每次都减少10}ByteArrayInputStream isBm = new ByteArrayInputStream(baos.toByteArray());// 把压缩后的数据baos存放到ByteArrayInputStream中Bitmap bitmap = BitmapFactory.decodeStream(isBm, null, null);// 把ByteArrayInputStream数据生成图片return bitmap;}
0 0
- 安卓压缩图片(解决OOM)
- android压缩图片,解决oom错误
- 解决OOM错误的图片压缩方法
- 图片压缩及缓存解决OOM
- android压缩图片,解决oom错误
- 安卓图片压缩
- 安卓压缩图片
- 安卓图片压缩
- 安卓图片压缩
- 安卓图片压缩
- 安卓压缩图片
- 安卓OOM和Bitmap图片二级缓存机制(一)
- 安卓OOM和Bitmap图片二级缓存机制(二)
- 安卓OOM和Bitmap图片二级缓存机制(二)
- 安卓OOM和Bitmap图片二级缓存机制(一)
- 安卓OOM和Bitmap图片二级缓存机制(二)
- 安卓OOM和Bitmap图片二级缓存机制(二)
- 使用BitmapFactory压缩图片大小解决android解析图片OOM错误
- 多线程与并发库高级应用
- Qt中的空间无法显示
- 环境搭建与DOS命令行的操作
- POJ 2796 Feel Good
- 最近根据别人提示的一个想法,东拼西凑,终于实现了android系统中只能看到自己的系统,我称之为唯一系统。 很多企业做设备或是做产品的或是集成商 其中的一部分设备直接用android智能机。担是又不让
- 安卓压缩图片(解决OOM)
- java 关于FileNotFoundException: D:\xxx\yyy (拒绝访问。)问题解析
- C++开源库
- 进制转换与位运算
- 手动安装huson插件的做法
- Html 拖拽排序代码(需要引入jquery.js文件)
- web里面Servlet高级应用的基础介绍
- 面向对象的众多特性
- 关于DLL搜索路径的顺序问题