Android的Bitmap图片压缩与内存的关系
public static boolean saveImageFileToLoc(final File file, final Bitmap photoBitmap) {FileOutputStream fos = null;try {if (null != file) {fos = new FileOutputStream(file);if (null != fos) {photoBitmap.compress(Bitmap.CompressFormat.JPEG,75, fos);fos.flush();}return true;}} catch (IOException e) {return false;} finally {photoBitmap.recycle();try {if (null != fos) {fos.close();}} catch (IOException e) {e.printStackTrace();}}return false;
}
public static Bitmap resizeBitmap(String imgPath, float pixelW, float pixelH) {BitmapFactory.Options newOpts = new BitmapFactory.Options();// 开始读入图片,此时把options.inJustDecodeBounds 设回true,即只读边不读内容newOpts.inJustDecodeBounds = true;newOpts.inPreferredConfig = Bitmap.Config.ARGB_8888;// Get bitmap info, but notice that bitmap is null nowBitmap bitmap = BitmapFactory.decodeFile(imgPath,newOpts);newOpts.inJustDecodeBounds = false;int w = newOpts.outWidth;int h = newOpts.outHeight;// 想要缩放的目标尺寸float hh = pixelH;// 设置高度为240f时,可以明显看到图片缩小了float ww = pixelW;// 设置宽度为120f,可以明显看到图片缩小了// 缩放比。由于是固定比例缩放,只用高或者宽其中一个数据进行计算即可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 = BitmapFactory.decodeFile(imgPath, newOpts);return bitmap ;
}
Android的Bitmap图片压缩与内存的关系相关推荐
- 【Android 内存优化】Android 原生 API 图片压缩原理 ( 哈夫曼编码开关 | 哈夫曼编码原理 | libjpeg-turbo 函数库 )
文章目录 一. 哈夫曼编码开关 二. 哈夫曼编码原理 三. libjpeg-turbo 函数库 四. libjpeg-turbo 函数库下载 [Android 内存优化]图片文件压缩 ( Androi ...
- 【Android 内存优化】Android 原生 API 图片压缩原理 ( Bitmap_compress 方法解析 | Skia 二维图形库 | libjpeg 函数库 | libpng 函数库 )
文章目录 一. 图片质量压缩方法 二. Skia 二维图形库 三. libjpeg.libpng 函数库引入 在博客 [Android 内存优化]图片文件压缩 ( Android 原生 API 提供的 ...
- 【Android 内存优化】Android 原生 API 图片压缩原理 ( 图片质量压缩方法 | 查找 Java 源码中的 native 方法对应的 C++ 源码 )
文章目录 一. 图片质量压缩方法 二. 查找对应的 Native 方法源码 三. 分析 Bitmap.cpp 中动态注册 Native 方法 在博客 [Android 内存优化]图片文件压缩 ( An ...
- Bitmap图片压缩,大图加载防止OOM
文章目录 前言 RGB介绍 图片占用内存的计算 读取位图尺寸和类型 内存中如果加载一张 `500*500` 的 `png` 高清图片.应该是占用多少的内存? 如果这个图片为本地资源图片,是否还是0.9 ...
- 传递Bitmap + 图片压缩处理 并保存 + 壁纸设置 总结
原博客地址:http://blog.csdn.net/moubenmao_jun/article/details/20055189 ================================== ...
- Android调整Bitmap图片大小
#Android调整Bitmap图片大小 /*** 调整图片大小* * @param bitmap* 源* @param dst_w* 输出宽度* @param dst_h* 输出高度* @retur ...
- 【Android 内存优化】Android 原生 API 图片压缩代码示例 ( PNG 格式压缩 | JPEG 格式压缩 | WEBP 格式压缩 | 动态权限申请 | Android10 存储策略 )
文章目录 一. 图片质量压缩 二. 图片尺寸压缩 三. Android 10 文件访问 四. 完整源码示例 上一篇博客 [Android 内存优化]图片文件压缩 ( Android 原生 API 提供 ...
- Android BitMap图片压缩
最近在网上看了一些关于图片压缩的博客,自己也动手实验了一遍,也算事对图片压缩有了一个了解,打算写个博客记录一下.文末附上参考链接. Android中涉及到图片的话一般都会用到BitMap类和Bitma ...
- Android 图片压缩、内存计算
前言 再平时开发中肯定都会用到图片相关知识,而平时大多都只会关注实现方面,但一些理论对于面试和更深入高级实现就很有用,比如很多第三方组件很多都已经实现,本篇文章先从图片加载内存计算.图片压缩.图片另存 ...
最新文章
- 2022-2028年中国音像制品行业投资分析及前景预测报告
- Python基础编程——多重继承下方法的调用
- 前端性能优化之--页面渲染优化全面解析
- 【JavaScript 学习笔记】创建对象
- spring 整和activemq
- linux iptables扩展,脚本防火墙
- python模块搜索路径 (sys.path)
- Kali Linux下安装VMware
- 洛谷P2708题题解(Java语言描述)
- JS 函数中的call,apply
- pythondd_python学习笔记(五)之字典2-阿里云开发者社区
- 手持设备点击响应速度,鼠标事件与touch事件的那些事
- Linked List Cycle | ||
- 分享Swing学习的一些经验
- 控制面板中java设置项如何删除
- 富士胶片滤镜人像调色预设PS插件
- 关于DNF的多媒体包NPK文件的那些事儿(8) - DNF里的DDS图像
- 用差分法求解burger方程 matlab,偏微分方程数值解上机实验.doc
- python中的statistics_详解python statistics模块及函数用法
- 新能源与材料如何应用计算机,计算机模拟在光电材料及太阳能工程领域的应用与新进展.doc...
热门文章
- Try-with-resources are not supported at language level ‘5‘ 报错
- Python中的对象实例化过程 用python解密__new__
- 如何用cmd链接linux,如何在Windows cmd 下使用linux的命令
- Java 中ArrayList中的重复数据
- word表批量处理小技巧(python+宏)
- 手机如何实现边有线上网边充电?
- 从零开始的Wordpress个人网站搭建(图文)
- 现代函数概念的“序偶”定义
- Matlab中的c2d函数用法以及绘制传函的Bode图
- ubuntu中rar与unrar用法详解