Android Cookie

Android 安卓是最开放的手机操作系统,谷歌安卓APP开发和安卓市场的相关话题

Android / Java:将一个字节数组保存到一个文件(.jpeg)

我正在开发Android应用程序,部分应用程序必须拍照并将其保存到SD卡。 onPictureTaken方法返回一个包含捕获图像数据的字节数组。 我所需要做的就是将字节数组保存到.jpeg图像文件中。 我已经尝试在BitmapFactory.decodeByteArray(获得一个位图),然后bImage.compress(一个OutputStream),一个普通的OutputStream和一个BufferedOutputStream的帮助下做到这一点。 所有这三种方法似乎给我同样的怪异的错误。 我的Android手机(800万像素的摄像头和一个不错的处理器),似乎保存了照片(大小看起来正确),但在一个损坏的方式(图像被切片,每一个切片,或者我只是几乎水平线的各种颜色) ; 奇怪的是,一个500万像素的摄像头和一个快速的处理器的Android平板电脑似乎正确地保存图像。 所以我想也许处理器不能跟上保存大的图像,因为我约3张图片后(即使在40的压缩质量)我得到了OutOfMemoryexception。 但是,如果内置的相机应用程序如何做,而且更快? 我很确定(从debugging)OutputStream写入所有的数据(字节),应该没问题,但它仍然损坏。 ***总之,什么是最好的/最快的方式(工作)将字节数组保存到JPEG文件? 在此先感谢,马克 我试过的代码(和其他一些细微的变化): try { Bitmap image = BitmapFactory.decodeByteArray(args, 0, args.length); OutputStream fOut = new FileOutputStream(externalStorageFile); long time = System.currentTimeMillis(); image.compress(Bitmap.CompressFormat.JPEG, jpegQuality, fOut); System.out.println(System.currentTimeMillis() – time); fOut.flush(); fOut.close(); } catch (Exception e) { } 和 try { externalStorageFile.createNewFile(); FileOutputStream fos = new FileOutputStream(externalStorageFile); fos.write(args); […]