在Android Camera2 API中。我可以使用图像阅读器(YUV_420_888)进行处理吗,使用另一种图像阅读器(JPEG)进行拍摄静止图像吗?

问题描述 投票:-1回答:1

我尝试但是当我按下捕获按钮并且没有创建图像时预览冻结。有什么建议吗?我可以在一个Camera2项目中使用多少个图像读取器?

jpeg android-camera2 yuv image-reader
1个回答
0
投票

对于您正在创建的每个CaptureSession,您只能拥有一个ImageReader。如果要为每种类型的Image使用两个不同的ImageReader,则应使用两个CaptureSession。但是你必须非常小心两个会话之间的摄像机资源处理(例如,你应该在启动其他CaptureSession以捕获YUV_420_888图像之前关闭ImageReader for JPEG)。使用多个CaptureSession在设备上也很重要,通常不推荐使用。相反,您可以对两种类型的图像使用相同的字节。

public void onImageAvailable(ImageReader imageReader) {
            byte[] bytes = null;
            Image image = imageReader.acquireLatestImage();
            try {

                ByteBuffer buffer = image.getPlanes()[0].getBuffer();
                bytes = new byte[buffer.capacity()];
                buffer.get(bytes);
                //use the bytes to manipulate
            } catch (Exception e) {
                e.printStackTrace();
            }
            image.close();
            imageReader.close();

        }
© www.soinside.com 2019 - 2024. All rights reserved.