背景 嘿,所以我有一个我自己用代码实现的相机。这意味着我可以访问和控制相机硬件并使用它来保存图片。我可以在相机运行时使用 Camera.takePicture() 函数保存图片:运行意味着 Camera.startPreview();
问题我的问题是我希望在相机图像被冻结 时也能够保存图像:冻结是当 Camera.stopPreview(); 被称为。冻结时,我可以在布局中看到图像,但是如何访问它?图像保存在哪里,以便我以后可以修改它?
提前致谢!
------------------更新1
jpeg bla;
public class jpeg implements PictureCallback{
public void onPictureTaken(byte[] data, Camera camera) {
g_data = data;
}
}
这是我的代码的一部分。在这里,我试图将最初保存到全局变量的数据写入。但是 g_data 的值仍然为空,我无法在 onPictureTaken() 回调函数中设置断点。
------------------更新2
FileOutputStream outStream = null;
try {
// generate the folder
File imagesFolder = new File(Environment.getExternalStorageDirectory(), "MirrorMirror");
if( !imagesFolder.exists() ) {
imagesFolder.mkdirs();
}
// generate new image name
SimpleDateFormat formatter = new SimpleDateFormat("HH_mm_ss");
Date now = new Date();
String fileName = "image_" + formatter.format(now) + ".jpg";
// create outstream and write data
File image = new File(imagesFolder, fileName);
outStream = new FileOutputStream(image);
outStream.write(data);
outStream.close();
Log.d(TAG, "onPictureTaken - wrote bytes: " + data.length);
} catch (FileNotFoundException e) { // <10>
//Toast.makeText(ctx, "Exception #2", Toast.LENGTH_LONG).show();
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {}
我之前使用此代码从相机 onPictureTaken() 函数中保存文件。这里的关键是我需要保存和稍后保存的 byte[] 数据。但是,就像我说的那样,当我在调试器中检查它时,我只会得到一个空值。