Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/126.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 从BITMAPINFO保存图像_C++_Bitmap - Fatal编程技术网

C++ 从BITMAPINFO保存图像

C++ 从BITMAPINFO保存图像,c++,bitmap,C++,Bitmap,我一直在尝试保存一个作为BITMAPINFO*和数据指针提供的图像。 我目前正在尝试使用Bitmap::FromBITMAPINFO方法,如下所示: #include <gdiplusheaders.h> #include "stdafx.h" [...] BITMAPINFO* bitMapInfo = (BITMAPINFO*) getPtrBitmapInfo(); void* bitMapData = (void*) getPtrBitmapBits()

我一直在尝试保存一个作为BITMAPINFO*和数据指针提供的图像。 我目前正在尝试使用Bitmap::FromBITMAPINFO方法,如下所示:

#include <gdiplusheaders.h>
#include "stdafx.h"

[...]
BITMAPINFO* bitMapInfo = (BITMAPINFO*) getPtrBitmapInfo();
void* bitMapData = (void*) getPtrBitmapBits();
Bitmap *image;
image = Bitmap::FromBITMAPINFO(bitMapInfo, bitMapData);
#包括
#包括“stdafx.h”
[...]
BITMAPINFO*BITMAPINFO=(BITMAPINFO*)getPtrBitmapInfo();
void*bitMapData=(void*)getPtrBitmapBits();
位图*图像;
image=Bitmap::FromBITMAPINFO(bitMapInfo,bitMapData);
但是VS2019给了我一个错误: C++静态位图*BITMAP::FromBITMAPINFO(BITMAPFIN)函数调用< /P>中的参数太多 知道这是从哪里来的吗?
谢谢

所以我最终让它工作并保存了图像:

#include "stdafx.h"
#include <gdiplusheaders.h>

[...]
BITMAPINFO* bitMapInfo = (BITMAPINFO*) getPtrBitmapInfo();
void* bitMapData = (void*) getPtrBitmapBits();
Gdiplus::Bitmap *image;
image = Gdiplus::Bitmap::FromBITMAPINFO(bitMapInfo, bitMapData);
CLSID bmpClsid;
CLSIDFromString(L"{557cf400-1a04-11d3-9a73-0000f81ef32e}", &bmpClsid);
image->Save(L"File.bmp", &bmpClsid, NULL);

//bmp: {557cf400-1a04-11d3-9a73-0000f81ef32e}
//jpg: {557cf401-1a04-11d3-9a73-0000f81ef32e}
//gif: {557cf402-1a04-11d3-9a73-0000f81ef32e}
//tif: {557cf405-1a04-11d3-9a73-0000f81ef32e}
#包括“stdafx.h”
#包括
[...]
BITMAPINFO*BITMAPINFO=(BITMAPINFO*)getPtrBitmapInfo();
void*bitMapData=(void*)getPtrBitmapBits();
Gdiplus::位图*图像;
image=Gdiplus::位图::FromBITMAPINFO(bitMapInfo,bitMapData);
CLSID bmpClsid;
CLSIDFromString(L“{557cf400-1a04-11d3-9a73-0000f81ef32e}”,&bmpClsid);
图像->保存(L“File.bmp”,&bmpClsid,NULL);
//bmp:{557cf400-1a04-11d3-9a73-0000f81ef32e}
//jpg:{557cf401-1a04-11d3-9a73-0000f81ef32e}
//gif:{557cf402-1a04-11d3-9a73-0000f81ef32e}
//tif:{557cf405-1a04-11d3-9a73-0000f81ef32e}

include“stdafx.h”的位置是一个bug
#include“stdafx.h”
必须是第一个include。编译器将忽略预编译头文件include上方的所有行。@drescherjm好的,谢谢,这是一个好的开始,现在它告诉我位图未定义。我想我应该找到正确的include。虽然它不应该包含在gdiplusheaders中。h?告诉我位图未定义,这是编译错误还是链接器错误?文档中说您需要在这里链接到
Gdiplus.lib
:所以这是一个编译错误,我不得不调用Gdiplus::Bitmap和Gdiplus::Bitmap::FromBITMAPINFO。现在它编译了!