java - 将 YUV_420_888 转换为字节数组

标签 java android arrays camera2

我正在测试新的 Camera2 API,并且能够以 YUV_420_888 格式捕获相机预览。接下来我需要做的是将这些数据提供给图像处理库,该库接受 byte[] 参数。

我找到了 converting YUV_420_888 to RGB 的示例等等,但我仍然需要通过 ByteArrayOutputStream 将生成的位图转换为 byte[],经过实验,这会极大地减慢应用程序的速度。

我的问题是,如何有效地将 YUV_420_888 转换为 byte[]

最佳答案

图像处理库想要的 byte[] 数组的实际格式是什么?是RGB吗? YUV 平面? YUV 半平面?

假设它是 RGB,假设您引用将 YUV_420_888 转换为 RGB,您可以修改该示例以不从分配创建位图 - 只需使用 Allocation.copyTo用 byte[] 而不是 Bitmap。

关于java - 将 YUV_420_888 转换为字节数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38949579/

相关文章:

c - 为什么原数组也是排序的?

c# - Server.MapPath 的 servlet 等价物是什么?

java - 使用 Java (OSX) 设置任何应用程序的焦点?

android - 查看带有切角和边框的背景

android - 如何知道 RecyclerView 何时完成放置项目?

java - 获取 Android 的 IP 以进行 P2P 连接

javascript - 无法在 javascript 数组中提醒响应

Java Card 从数组中读取数据

java - 原始装饰器的实际缺点

java - 如何使两个字符串之间随机连接