我想要完成的是将加载内存的位图转换为文件(.bmp)。
我应该提一下bpp:24并输入:RGB。
我将我的结果与一个名为Res hacker的软件进行比较,该软件可以从加载的模块中提取资源作为位图
标题似乎没有问题(BITMAPINFOHEADER + BITMAPFILEHEADER),它们在两个文件中都相似。
问题在于像素位,我无法想象如何将它们从内存转换为文件。
int PeBmLoader::Get_Bit_Map_File(char *& file,BITMAPFILEHEADER
*bitmap_file_header,BITMAPINFOHEADER * bitmap_info_header){
int data_size = bitmap_info_header->biSizeImage;
int total_size = data_size + sizeof(BITMAPFILEHEADER)+sizeof(BITMAPINFOHEADER);
unsigned char temp;
file = new char[total_size];
char * data = new char[data_size];
memcpy(file,(char*)bitmap_file_header,sizeof(BITMAPFILEHEADER));
memcpy(file+sizeof(BITMAPFILEHEADER), (char*)bitmap_info_header,sizeof(BITMAPINFOHEADER));
memcpy(data,
(char*)(bitmap_info_header+sizeof(BITMAPINFOHEADER)),
data_size);
std::cout << bitmap_info_header->biCompression << std::endl;
memcpy(file+sizeof(BITMAPFILEHEADER)+sizeof(BITMAPINFOHEADER),data,data_size);
delete data;
return total_size;}
这是代码,你可以看到除了以原始形式复制像素位(数据)之外我什么也做不了。