这是一个代码,用于读取BMP文件并将其转换为"杀死类"。而且我知道有简单的方法(固化(" filepath"((。
CFile File;
char *ReadBuffer; // Pointer to read buffer
char *OutputBuffer; // Pointer to output buffer
BITMAPFILEHEADER BmpFileHeader;
unsigned int BmpHeadSize;
char *BmpHeadPtr;
File.Open(FileName);
SrcFile.Read(&BmpFileHeader, sizeof(BmpFileHeader);
BmpHeadSize = BmpFileHeader.bfOffBits - sizeof(BmpFileHeader);
BmpHeadPtr = new char[BmpHeadSize];
File.Read(BmpHeadPtr, BmpHeadSize);
BmpInfoPtr = (BITMAPINFOHEADER*)BmpHeadPtr;
ReadBuffer = new char[BmpInfoPtr->biSizeImage];
SrcFile.Read(ReadBuffer, BmpInfoPtr->biSizeImage);
OutputBuffer = new char[BmpInfoPtr->biSizeImage];
for (i = 0; i < IMAGE_HEIGHT; i++)
{
//Use this line if the bitmap is 24 bit
memcpy(&OutputBuffer[(IMAGE_HEIGHT - i - 1) * IMAGE_WIDTH * 3],
&ReadBuffer[i * IMAGE_WIDTH * 3], IMAGE_WIDTH * 3);
}
memcpy(m_Ipl->imageData, OutputBuffer, BmpInfoPtr->biSizeImage);
如何阅读1位BMP图像?它可以与24位和8位一起工作。请帮助:(
用 LR_CREATEDIBSECTION
flag
HBITMAP hbmp = (HBITMAP)LoadImageW(0, L"test.bmp", IMAGE_BITMAP, 0, 0,
LR_LOADFROMFILE | LR_CREATEDIBSECTION);
BITMAP bm;
GetObject(hbmp, sizeof(bm), &bm);
bm.bmBits
将访问位。位的大小为 bm.bmWidthBytes
x bm.bmHeight