//对图片进行压缩
BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
//获取这个图片的宽和高
Bitmap bitmap = BitmapFactory.decodeFile("/sdcard/dcim/Camera/hello.jpg",options);//此时返回bm为空
options.inJustDecodeBounds =false;
//计算缩放比
int be = (int)(options.outHeight / (float)200);
if(be <= 0)
be =1;
options.inSampleSize =be;
//重新读入图片,注意这次要把options.inJustDecodeBounds设为false哦
bitmap = BitmapFactory.decodeFile("/sdcard/dcim/Camera/hello.jpg",options);
int w = bitmap.getWidth();
int h=bitmap.getHeight();
System.out.println(w+" "+h);
myImageView.setImageBitmap(bitmap);
//保存入sdCard
File file2= new File("/sdcard/dcim/Camera/test.jpg");
try {
FileOutputStream out = new FileOutputStream(file2);
if(bitmap.compress(Bitmap.CompressFormat.JPEG, 100, out)){
out.flush();
out.close();
}
} catch (Exception e) {
// TODO: handle exception
}
//读取sd卡
File file =new File("/sdcard/dcim/Camera/test.jpg");
int maxBufferSize = 16 * 1024;
int len = 0;
ByteArrayOutputStream outStream = new ByteArrayOutputStream();
BufferedInputStream bufferedInputStream;
try {
bufferedInputStream = new BufferedInputStream(new FileInputStream(file));
int bytesAvailable = bufferedInputStream.available();
int bufferSize = Math.min(bytesAvailable, maxBufferSize);
byte[] buffer = new byte[bufferSize];
while ((len = bufferedInputStream.read(buffer)) != -1)
{
outStream.write(buffer, 0, bufferSize);
}
data = outStream.toByteArray();
outStream.close();
bufferedInputStream.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
最近做项目,碰到一个问题,就是上传大文件,会内存溢出,我只能压缩图片进行上传啦。
这样我们就可以读取较大的图片而不会内存溢出了。
分享到:
相关推荐
Luban(鲁班)——Android图片压缩工具,仿微信朋友圈压缩策略。项目描述目前做app开发总绕不开图片这个元素。但是随着手机拍照分辨率的提升,图片的压缩成为一个很重要的问题。单纯对图片进行裁切,压缩已经有很多...
Android图片压缩解决方案,解决图片加载过程中ANR现象
使用质量压缩、尺寸压缩、采样率压缩以及转换为RGB565等四种方式压缩图片
android 照片获取 压缩存储代码 经过实际项目测试相当稳定
Android图片压缩 尽量不失真100k左右.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
压缩图片到 200h*200w 高自定义性
首先通过尺寸压缩,压缩到手机常用的一个分辨率(1280*960 微信好像是压缩到这个分辨率),然后我们要把图片压缩到100KB以内,通过质量压缩来计算options需要设置为多少,最后调用JNI压缩,这边我测试了下,压缩出来的...
在网上调查了图片压缩的方法并实装后,大致上可以认为有两类压缩:...android图片压缩总结 总 结来看,图片有三种存在形式:硬盘上时是file,网络传输时是stream,内存中是stream或bitmap,所谓的质量压缩,它其实只能
上传图片时按照服务器限制对图片进行压缩,工具类进行了宽度、高度、图片大小进行循环判断压缩。供大家参考如有问题欢迎指出,积分缺乏忘老板们体谅
Android图片压缩结合多种压缩方式,常用的有尺寸压缩、质量压缩以及通过JNI调用libjpeg库来进行压缩,三种方式结合使用实现指定图片内存大小,清晰度达到最优。
android 图片压缩。有需要的可以自己完善
android图片压缩
android图片压缩的处理. 本代码只能用于学习使用; 不得以任何商业手段进行营利销售; 谢谢大家合作; 感谢同学们支持.
Luban Android图片压缩工具,仿微信朋友圈压缩策略。来源:https://github.com/Curzibn/Luban。在其基础上解决6.0以上权限问题。
NULL 博文链接:https://xuhangjiekvkk.iteye.com/blog/2259837
Android图片压缩、加水印 http://blog.csdn.net/zivensonice/article/details/51462470
利用编译过的libjpeg库实现Android图片压缩的终极方案
于是自然想到App巨头“微信”会是怎么处理,Luban(鲁班)就是通过在微信朋友圈发送近100张不同分辨率图片,对比原图与微信压缩后的图片逆向推算出来的压缩算法。 因为有其他语言也想要实现Luban,所以描述了一遍...
Android 图片压缩LuBan鲁班eclipse版项目
Android 图片压缩库Tiny,解决GooglePlay对rustManager审核不通过。