Android拍照保存图片内存大小
2013-12-24 14:37
316 查看
图片拍摄的大小会随着硬件而变化,比如,像素高的相机拍出来的图片要比像素低的图片内存要大。
如此一来,针对机型可能调用camera app保存照片的时候,图片大小会不一样。
为了缩小图片大小,我们需要把临时图片再另存为。
BitmapFactory.Options bitmapFactoryOptions = new BitmapFactory.Options();
bitmapFactoryOptions.inSampleSize = 2;
Bitmap bm = BitmapFactory.decodeFile(file.getAbsolutePath(), bitmapFactoryOptions);
if (bm != null) {
//
if (bm.getHeight() > bm.getWidth()) {
Matrix matrix = new Matrix();
matrix.setRotate(90);
bm = Bitmap.createBitmap(bm, 0, 0, bm.getWidth(), bm.getHeight(), matrix, true);
}
bm = Bitmap.createScaledBitmap(bm, 640, 480, true);
}
//
FileOutputStream fos = openFileOutput(tempFileName, MODE_PRIVATE);
BufferedOutputStream os = new BufferedOutputStream(fos);
bm.compress(Bitmap.CompressFormat.JPEG, 90, os);
// 这里正常情况下是设置成100的,把它改小一点,比如这里改成90,照片大小是70-100KB,而在100的时候,它的大小是200KB-300KB。
bm.recycle();
bm = null;
fos.close();
os.flush();
os.close();
return new File(getFilesDir(), tempFileName);
如此一来,针对机型可能调用camera app保存照片的时候,图片大小会不一样。
为了缩小图片大小,我们需要把临时图片再另存为。
BitmapFactory.Options bitmapFactoryOptions = new BitmapFactory.Options();
bitmapFactoryOptions.inSampleSize = 2;
Bitmap bm = BitmapFactory.decodeFile(file.getAbsolutePath(), bitmapFactoryOptions);
if (bm != null) {
//
if (bm.getHeight() > bm.getWidth()) {
Matrix matrix = new Matrix();
matrix.setRotate(90);
bm = Bitmap.createBitmap(bm, 0, 0, bm.getWidth(), bm.getHeight(), matrix, true);
}
bm = Bitmap.createScaledBitmap(bm, 640, 480, true);
}
//
FileOutputStream fos = openFileOutput(tempFileName, MODE_PRIVATE);
BufferedOutputStream os = new BufferedOutputStream(fos);
bm.compress(Bitmap.CompressFormat.JPEG, 90, os);
// 这里正常情况下是设置成100的,把它改小一点,比如这里改成90,照片大小是70-100KB,而在100的时候,它的大小是200KB-300KB。
bm.recycle();
bm = null;
fos.close();
os.flush();
os.close();
return new File(getFilesDir(), tempFileName);
相关文章推荐
- Android图片占据的内存大小分析
- Android 调用用相机拍照保存在本地,imageview根据路径读取图片
- android 拍照的图片保存到系统图库
- Android拍照、调用系统图库、裁剪图片到指定大小后输出
- Android根据屏幕大小加载图片到内存
- Android 漫游之路------将文件保存到内存、SD以及获取手机内部存储与外部存储空间的大小
- Android部分手机拍照上传返回为空处理,和拍照后图片压缩后保存到指定路径下
- Android 中获取图片占内存的大小
- android中Bitmap图像处理 修改图片大小以及保存时的文件大小
- 关于Android中图片大小、内存占用与drawable文件夹关系的研究与分析
- Cocos2d-x使用android拍照功能加载照片内存过大,通过另存照片尺寸大小解决
- android选择系统相机拍照和系统相册,裁剪图片并保存和设置头像,适配至7.0
- Android在程序中启动拍照/摄像或选择一张图片/视频,并制作缩略图后保存
- android开发——camera类拍照指定图片大小
- Android中使用file.createNewFile()无法创建文件的问题(例如保存拍照的图片到本地)
- Android调用相机拍照,压缩图片后保存SD卡中
- 关于Android中图片大小、内存占用与drawable文件夹关系的研究与分析
- android没有插SD卡/TF卡(TF卡其实就是microSD卡)时的图库(拍照的照片)里图片的保存路径(位置)
- android 打开系统相机拍照并保存文件,显示图片。
- android 图片压缩,自动旋转保存,查看照片信息,拍照设备类型等