c++保存yuv400格式的图片
时间: 2023-11-26 08:02:23 浏览: 160
要保存YUV400格式的图片,可以按照以下步骤进行操作:
1. 创建一个存储YUV数据的数组,数组大小为图像的宽度乘以高度。
2. 将图像的亮度数据写入数组中。YUV400格式只包含亮度信息,因此只需要将灰度值写入数组即可。
3. 使用文件操作函数,例如`fopen`或`ofstream`,创建一个新的文件,并以二进制写入模式打开该文件。
4. 将数组中的数据写入文件中,确保以二进制形式写入。
5. 关闭文件。
下面是一个示例代码:
```cpp
#include <iostream>
#include <fstream>
void saveYUV400Image(const unsigned char* yuvData, int width, int height, const std::string& filename) {
std::ofstream file(filename, std::ios::binary);
if (!file) {
std::cout << "Failed to open the file." << std::endl;
return;
}
// Write the YUV400 data to the file
file.write(reinterpret_cast<const char*>(yuvData), width * height);
file.close();
}
int main() {
int width = 640;
int height = 480;
const std::string filename = "image.yuv";
// Assuming you have YUV400 data stored in yuvData array
unsigned char* yuvData = new unsigned char[width * height];
// Fill yuvData with the YUV400 data
// Save the YUV400 image
saveYUV400Image(yuvData, width, height, filename);
delete[] yuvData;
return 0;
}
```
在上面的示例中,`saveYUV400Image`函数将YUV400数据保存到指定的文件中。确保提供正确的图像宽度、高度和文件名。
阅读全文