Android 把 byte[] yuvBytes写入到文件中
时间: 2024-10-25 08:08:27 浏览: 13
Java中byte输出write到文件的实现方法讲解
在Android中,将byte数组(YUV字节数据)写入到文件中通常涉及以下步骤:
1. 首先,你需要创建一个FileOutputStream对象,它代表了用于写入文件的流。
```java
File file = new File("your_file_path");
FileOutputStream outputStream = new FileOutputStream(file);
```
2. 确保YUV数据是以正确的格式存储的,常见的YUV编码有NV21、I420等。例如,对于NV21,你可以按行读取YUV字节并分块写入。
```java
int yuvWidth = yuvBytes.length / (yuvHeight * 3); //假设YUV数据已经按照NV21格式排列
for (int i = 0; i < yuvHeight; ++i) {
int offsetY = i * yuvWidth;
for (int j = 0; j < yuvWidth; j += 2) {
int pixel = ((yuvBytes[offsetY] << 16) | (yuvBytes[offsetY + 1] << 8) | yuvBytes[offsetY + 2]);
outputStream.write(yuvBytes[offsetY++]); // Y plane
outputStream.write(yuvBytes[offsetY++] >> 1); // UV plane (first half)
if (j % 2 == 1) { // write the second half of UV plane every other byte
outputStream.write(yuvBytes[offsetY++] >> 1);
}
}
}
```
3. 最后别忘了关闭输出流:
```java
outputStream.close();
```
阅读全文