如何在 Camera2 中将 ImageFormat.PRIVATE 保存为 JPEG 文件?

How can I save ImageFormat.PRIVATE to JPEG file in Camera2?

当我用YUV_420_888转换成JPEG时,它不允许保存最大分辨率,只能限制在3840x2160,所以我想试试ImageFormat.PRIVATE 如果不是,ImageFormat.PRIVATE 有什么用?

PRIVATE 可用于记录或生成供 OpenCV 显示的纹理。通常,相机可以捕获最大分辨率为 JPEG,而无需经过 YUV 或 PRIVATE 格式。

PRIVATE 不一定是单一格式。它在 Android 上用于在特定于设备的组件(例如,相机 HAL 和 GPU 驱动程序,或相机 HAL 和视频编码器)之间进行通信,以便组件可以选择特定的高效格式进行通信。

因此从相机到 GPU 的 PRIVATE 可能与从相机到编码器的 PRIVATE 是不同的格式,并且在两个 Android 设备之间也有很大不同。

除非您确切知道您的设备和用例是什么,否则您无法有意义地读取 PRIVATE 缓冲区。不幸的是,您需要使用 public 格式,例如 YUV_420_888 或 JPEG,或者具有特定于供应商的信息。