gpt4 book ai didi

java - 当相机处于停止预览模式时保存图片

转载 作者:行者123 更新时间:2023-12-01 14:21:34 25 4
gpt4 key购买 nike

背景嘿,我有一个我自己用代码实现的相机。这意味着我可以访问和控制相机硬件并使用它来保存图片。当相机运行时,我可以使用 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[]数据。然而,就像我说的,当我在调试器中检查它时,我只是得到一个空值。

最佳答案

Camera.takePicture从不查看您指定为previewDisplay的 View 。实际上,它不是一个 ImageView,而是一个 SurfaceView,并且没有 API 可以从中读取像素。

您可以在 stopPreview() 之前抢先调用 takePicture()。稍后,如果您发现不需要该图片,则将其丢弃。

关于java - 当相机处于停止预览模式时保存图片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17506722/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com