如何使用 camera2 获得 2 个输出 capturesession

How to get 2 outputs capturesession with camera2

我正在开发一个 Android 应用程序来使用 camera2 捕捉快照并绘制与实时拍摄的照片相关的图表。

是否可以将捕获结果检索为 SurfaceView(以便显示)和 RGB 以便计算绘制图形的点?

相机硬件一般不支持原生RGB格式,只支持YUV。

您可以使用:

  • 作为附加输出的 ImageReader,采用 ImageFormat#YUV_420_888 格式,并在 Java 或本机代码中自行转换为 RGB
  • 使用 RenderScript YUV 分配作为附加目标并在 RenderScript 中转换为 RGB
  • 或者您可以使用 SurfaceTexture 输出到 GPU,然后使用 glReadPixels 读回 RGB 数据,或者直接在 GL 着色器中为您的图表做必要的processing/drawing。