Android --------- 压缩图片的尺寸和大小
压缩图片大小,尺寸不变
- 将已知路径的图片压缩至不大于目标大小,并保存至指定路径 - /**
 * 质量压缩,通过给定的路径来压缩图片并保存到指定路径
 *
 * @param srcPath
 * 资源图片的路径
 * @param savePath
 * 图片的保存路径
 * @param aimSize
 * 压缩到图片大小的最大值
 */
 public static void compressImageByPath(String srcPath, String savePath,
 int aimSize) {
 // 注意savePath的文件夹和文件的判断
 Bitmap imgBitmap = BitmapFactory.decodeFile(srcPath);
 ByteArrayOutputStream baos = new ByteArrayOutputStream();
 int percent = 100;// 定义压缩比例,初始为不压缩
 imgBitmap.compress(Bitmap.CompressFormat.JPEG, percent, baos);
 int currentSize = baos.toByteArray().length / 1024;
 while (currentSize > aimSize) {// 循环判断压缩后图片是否大于目的大小,若大于则继续压缩
 baos.reset();// 重置baos,即清空baos
 //注意:此处该方法的第一个参数必须为JPEG,若为PNG则无法压缩。
 imgBitmap.compress(Bitmap.CompressFormat.JPEG, percent, baos);
 currentSize = baos.toByteArray().length / 1024;
 percent -= 5;
 if (percent <= 0) {
 break;
 }
 } try {//将数据写入输出流
 FileOutputStream fos = new FileOutputStream(savePath);
 baos.writeTo(fos);
 } catch (Exception e) {
 e.printStackTrace();
 } finally {
 try {//清空缓存,关闭流
 baos.flush();
 baos.close();
 } catch (Exception e) {
 e.printStackTrace();
 }
 }
 if (!imgBitmap.isRecycled()) {
 imgBitmap.recycle();//回收图片所占的内存
 System.gc();//提醒系统及时回收
 }
 }
Android --------- 压缩图片的尺寸和大小的更多相关文章
- Android压缩图片到100K以下并保持不失真的高效方法
		前言:目前一般手机的相机都能达到800万像素,像我的Galaxy Nexus才500万像素,拍摄的照片也有1.5M左右.这么大的照片上传到服务器,不仅浪费流量,同时还浪费时间. 在开发Android企 ... 
- android 压缩图片大小,防止OOM
		android开发中,图片的处理是非常普遍的,经常是需要将用户选择的图片上传到服务器,但是现在手机的分辨率越来越好了,随便一张照片都是2M或以上,如果直接显示到ImageView中,是会出现OOM的, ... 
- android -------- 压缩图片文件工具类
		项目中常常遇到文件压缩问题,上传文件大小限制 今天简单的分享一点干货,文件压缩,图片压缩,压缩Bitmap 主要通过尺寸压缩和质量压缩,以达到清晰度最优 效果图 源码地址: https://githu ... 
- [Android] 压缩图片并保存
		不难,但用的时候有时候突然会想不起来..记录一下吧 原文地址请保留http://www.cnblogs.com/rossoneri/p/3995096.html 先加权限 <uses-permi ... 
- Xamarin.Android 压缩图片并上传到WebServices
		随着手机的拍照像素越来越高,导致图片赞的容量越来越大,如果上传多张图片不进行压缩.质量处理很容易出现OOM内存泄漏问题. 最近做了一个项目,向webservices上传多张照片,但是项目部署出来就会出 ... 
- android设置图片自适应控件大小
		在XML文件的ImageView属性中加上:android:scaleType="fitXY" 
- Android  LruCache   压缩图片  有效避免程序OOM
		转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/9316683 本篇文章主要内容来自于Android Doc,我翻译之后又做了些加工, ... 
- 等比例压缩图片到指定的KB大小
		基本原理: 取原来的图片,长宽乘以比例,重新生成一张图片,获取这张图片的大小,如果还是超过预期大小,继续在此基础上乘以压缩比例,生成图片,直到达到预期 /** * @获取远程图片的体积大小 单位byt ... 
- Android大图片导致内存问题小结
		在网上看了部分Android中OOM的问题,现在根据理解,做一下笔记. Android OOM 产生的几种原因 1. 程序中使用了太多自己创建的Bitmap. 这种情况通常是最好解决的. 因为你明白你 ... 
随机推荐
- java  J2EE学习入门
			首先学习JAVA基础编程,大学教材就是最简单的了!象写写Helloworld啊 输出水仙花数啊 玩些简单的,慢慢在研究研究流啊,都可以了.然后学习简单的JSP,这个时候多上网上DOWN一些原码.多看看 ... 
- 魔法方法:算术运算 - 零基础入门学习Python042
			魔法方法:算术运算 让编程改变世界 Change the world by program 我现在重新提一个名词:工厂函数,不知道大家还有没有印象?我们在老早前就提到过Ta,由于那时候我们还没有学习类 ... 
- ios app 开发中ipa重新签名步骤介绍-备
			作为一个app应用程序开发者,在app应用程序在苹果商店上架前总需要将安装包安装到ios机器上进行测试,这个时候我们就需要打包in house版本的ipa了,打包in house实际上是一个将ipa应 ... 
- Android系统源代码下载
			最近,我在研究android,所以想下载android源代码看看.按照http://source.android.com/source/downloading.html 这个页面所提示的步骤在下载源代 ... 
- Windows 系统版本判断
			Windows 系统版本判断 博客分类: C/C++ 很多情况下,需要软件判断操作系统,其实网上写的都很少,我希望这篇文章能给大家帮助 首先我们要在.h中定义下面的东西 #define PRODU ... 
- HDOJ(HDU) 1491 Octorber 21st
			Problem Description HDU's 50th birthday, on Octorber 21st, is coming. What an exciting day!! As a st ... 
- Android  ImageView的scaletype属性
			ImageView的属性android:scaleType,即 ImageView.setScaleType(ImageView.ScaleType).android:scaleType是控制图片如何 ... 
- IT项目外包有哪些注意事项
			2015年两会上,李克强总理在政府工作报告中首次提出“互联网+”计划,各种互联网创业项目也如雨后春笋般破土而出.由于很多创业团队并没有自己的技术团队,所以软件外包成为很多创业项目普遍采取的一种方案.在 ... 
- java中的浮点(float)运算
			一. 关于浮点运算,需要说明的几点: 1. 在java中,进行浮点运算并不会处理例外情况,所以,即使除数为0,也不会有例外被抛出; 2. 当运算结果是溢出(Infinity)时,结果为Infin ... 
- Difference between <? super T> and <? extends T> in Java
			stackoverflow 原文 [http://stackoverflow.com/questions/4343202/difference-between-super-t-and-extends- ... 
