gpt4 book ai didi

android - Camera2 API 中的 Camera.PreviewCallback 等效项

转载 作者:IT老高 更新时间:2023-10-28 23:22:59 30 4
gpt4 key购买 nike

API 21 中的 Camera2 中的 Camera.PreviewCallback 是否有任何等效项,比映射到 SurfaceTexture 并拉取 Bitmap 更好?我需要能够将预览数据从相机中提取为 YUV?

最佳答案

您可以从 Google 的 Camera2Basic 示例代码开始。

您需要将 ImageReader 的表面作为目标添加到预览捕获请求中:

//set up a CaptureRequest.Builder with the output Surface
mPreviewRequestBuilder = mCameraDevice.createCaptureRequest(CameraDevice.TEMPLATE_PREVIEW);
mPreviewRequestBuilder.addTarget(surface);
mPreviewRequestBuilder.addTarget(mImageReader.getSurface());

之后,您可以在ImageReader.OnImageAvailableListener中检索图像:

private final ImageReader.OnImageAvailableListener mOnImageAvailableListener = new ImageReader.OnImageAvailableListener() {
@Override
public void onImageAvailable(ImageReader reader) {
Image image = null;
try {
image = reader.acquireLatestImage();
if (image != null) {
ByteBuffer buffer = image.getPlanes()[0].getBuffer();
Bitmap bitmap = fromByteBuffer(buffer);
image.close();
}
} catch (Exception e) {
Log.w(LOG_TAG, e.getMessage());
}
}
};

ByteBuffer中获取Bitmap:

Bitmap fromByteBuffer(ByteBuffer buffer) {
byte[] bytes = new byte[buffer.capacity()];
buffer.get(bytes, 0, bytes.length);
return BitmapFactory.decodeByteArray(bytes, 0, bytes.length);
}

关于android - Camera2 API 中的 Camera.PreviewCallback 等效项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28440599/

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