C++ 将图像缓冲区另存为位图图像

C++ 将图像缓冲区另存为位图图像,c++,visual-c++,C++,Visual C++,我有一个存储为无符号整数类型的线性数组[640*480]的图像缓冲区,我想将该数组保存为可以查看的位图图像。我已经从相机中捕获了一张图像,并从C++中的GigE电缆中检索出它的图像缓冲区。所以请告诉我如何在C++中用位图文件来写一个整数数组的RGB值。我有流缓冲区 if (Result.Succeeded()) { // Grabbing was successful, process image cout

我有一个存储为无符号整数类型的线性数组[640*480]的图像缓冲区,我想将该数组保存为可以查看的位图图像。我已经从相机中捕获了一张图像,并从C++中的GigE电缆中检索出它的图像缓冲区。所以请告诉我如何在C++中用位图文件来写一个整数数组的RGB值。我有流缓冲区

if (Result.Succeeded())
            {
                // Grabbing was successful, process image
                cout << "Image #" << n << " acquired!" << endl;
                cout << "Size: " << Result.GetSizeX() << " x "
                << Result.GetSizeY() << endl;

                // Get the pointer to the image buffer
            const unsigned int *pImageBuffer = (int *) Result.Buffer();
pImagebuffer是图像缓冲区,请忽略这些函数,因为它们属于自定义编译器。我只想将RGB值转换为位图图像,然后保存它
此外,pImageBuffer为我提供了R=G=B,因为照片是单色的。

将像素数据与简单的BMP文件头一起保存,并进行适当初始化。请参阅格式说明。

每个像素有多少位32、16、24?表示颜色的无符号整数是怎样的?一个小注释:方法的大写字母拼写是C特定的,而不是C++ + MaN8数据。每像素8位。
if (Result.Succeeded())
            {
                // Grabbing was successful, process image
                cout << "Image #" << n << " acquired!" << endl;
                cout << "Size: " << Result.GetSizeX() << " x "
                << Result.GetSizeY() << endl;

                // Get the pointer to the image buffer
            const unsigned int *pImageBuffer = (int *) Result.Buffer();