Android(onPreviewFrame):将NV21数据保存为JPEG文件

时间:2011-07-13 10:23:31

标签: android camera jpeg

我有 onPreviewFrame()回调的以下代码。它现在能够将数据保存为JPEG文件,我可以在浏览器中查看,但不能在Windows图片查看器中查看。我的代码有问题吗?

YuvImage im = new YuvImage(data, ImageFormat.NV21, size.width,
                        size.height, null);
Rect r = new Rect(0,0,size.width,size.height);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
im.compressToJpeg(r, parameters.getJpegQuality(), baos);

try{
   FileOutputStream output = new FileOutputStream(String.format(
        "/sdcard/%s_%d.jpg", strPrevCBType, System.currentTimeMillis()));
   output.write(baos.toByteArray());
   output.flush();
   output.close();
}catch(FileNotFoundException e){
}catch(IOException e){
}

谢谢,
artsylar

1 个答案:

答案 0 :(得分:2)

我的代码现在正在运行。我不知道昨天发生了什么,但唯一的区别是我现在使用adb命令来提取文件,昨天我使用的是Eclipse File Explorer。

但是,如果有更好的方法来编写此代码,请告诉我。