//对图片进行压缩
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();
}
最近做项目,碰到一个问题,就是上传大文件,会内存溢出,我只能压缩图片进行上传啦。
这样我们就可以读取较大的图片而不会内存溢出了。
分享到:
相关推荐
本教程将探讨如何在Android中实现图片的压缩,特别是在一个名为"picture-compress-m552-master"的项目中,该项目提供了高度自定义的图片压缩功能,能够将图片压缩至200h*200w的尺寸。 首先,我们要了解Android中...
在Android开发中,图片处理是...总之,理解并掌握Android图片压缩的技巧对于提升应用性能和用户体验至关重要。通过实践`BitmapCompressDemo`,开发者不仅可以深入理解各种压缩方法,还能学会如何在实际项目中有效应用。
综上所述,Android图片压缩解决方案涉及多个层次和方法,开发者需要根据应用的实际需求和性能要求,选择合适的策略和工具,以确保图片加载的高效性和稳定性,避免ANR的发生。同时,持续关注和学习新的库和技术,也是...
这篇博客“android图片压缩的完整的解决方案”提供了详细的源码解析和实用工具,旨在帮助开发者高效地解决这一问题。 首先,我们来探讨一下Android中图片压缩的基本原理。Android提供了多种API来处理图像,例如...
Luban(鲁班)——Android图片压缩工具,仿微信朋友圈压缩策略。项目描述目前做app开发总绕不开图片这个元素。但是随着手机拍照分辨率的提升,图片的压缩成为一个很重要的问题。单纯对图片进行裁切,压缩已经有很多...
"Android图片压缩尽量不失真100k左右.rar"这个压缩包文件可能包含了实现这一目标的源代码示例。在安卓应用中,图片的压缩是一个关键环节,尤其是当需要保持图片质量的同时减小文件大小,以适应网络传输或存储空间的...
本资源提供了一个基于Eclipse的Android图片压缩的Demo,通过分析和实践这个Demo,开发者可以了解并掌握Android图片压缩的基本原理和技术。 首先,我们来看图片压缩的基本方法。Android提供了多种图片处理库,如...
本压缩包"Android图片压缩结合多种压缩方式.zip"提供了一种综合解决方案,它结合了尺寸压缩、质量压缩以及JNI(Java Native Interface)调用libjpeg库进行的压缩,旨在在保证图片清晰度的同时,将图片内存大小控制在...
这个"android图片压缩的处理.zip"文件很可能是包含了一些示例代码或库,用于帮助开发者了解和实现Android平台上的图片压缩技术。下面将详细讨论Android图片压缩的基本原理、常用方法以及可能涉及到的技术点。 1. **...
综上所述,Android图片压缩涉及到图像处理的基本概念、Bitmap对象的操作、文件I/O以及用户界面的交互等多个方面。理解并熟练掌握这些知识点,可以帮助开发者有效地优化应用的性能,提供更好的用户体验。
android 照片获取 压缩存储代码 经过实际项目测试相当稳定
本项目名为“android图片压缩终极方案”,它利用了NDK(Native Development Kit)并结合JPEG库的哈夫曼编码算法来实现图片的无损压缩。 NDK是Google提供的一个工具集,允许开发者在Android应用中使用C和C++代码。...
标题提到的"Android图片压缩",通常涉及到以下几个关键技术点: 1. **图片格式理解**:JPEG、PNG等常见图片格式的压缩原理,以及它们在内存和存储空间上的差异。例如,JPEG采用有损压缩,适合连续色调的图像;而PNG...
在网上调查了图片压缩的方法并实装后,大致上可以认为有两类压缩:...android图片压缩总结 总 结来看,图片有三种存在形式:硬盘上时是file,网络传输时是stream,内存中是stream或bitmap,所谓的质量压缩,它其实只能
通过分析和学习这个示例,开发者可以更好地理解和掌握Android图片压缩的技巧,以达到在不引发OOM的前提下,保持图片的高保真度。 总结来说,处理Android中的大图,我们需要合理地使用`BitmapFactory.Options`进行...
上传图片时按照服务器限制对图片进行压缩,工具类进行了宽度、高度、图片大小进行循环判断压缩。供大家参考如有问题欢迎指出,积分缺乏忘老板们体谅
《Android图片压缩技术:LuBan鲁班库的深度解析与应用》 在移动开发领域,尤其是在Android平台上,图片处理是一项必不可少的技术。面对用户上传的高分辨率照片,如何在保证显示效果的同时,有效压缩图片大小,减少...
总结,Android图片压缩的关键在于找到合适的压缩算法、压缩质量与文件大小之间的平衡。在不改变图片质量的前提下压缩图片,需要尝试不同的压缩策略,如调整JPEG或PNG的压缩质量,或者利用第三方库提供的高级功能。...
android 图片压缩。有需要的可以自己完善
总结,Android图片压缩和加水印是提高应用性能和保护版权的重要手段。开发者可以根据项目需求选择合适的方法,结合Android SDK和第三方库来实现高效、美观的功能。在AddWatermark-master这个项目中,你可能找到更...