19,464
社区成员
发帖
与我相关
我的任务
分享
HANDLE hFile=CreateFile(pszFileName, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
DWORD MASK[] = { 0xF800, 0x07E0, 0x001F };
BITMAPFILEHEADER BitmapFileHeader;
BitmapFileHeader.bfType=*(WORD *)"BM";
BitmapFileHeader.bfOffBits=sizeof(BITMAPFILEHEADER)+sizeof(BITMAPINFOHEADER)+sizeof(MASK);
BitmapFileHeader.bfSize=BitmapFileHeader.bfOffBits+h*RowLength;
BitmapFileHeader.bfReserved1=0;
BitmapFileHeader.bfReserved2=0;
r=WriteFile(hFile, &BitmapFileHeader, sizeof(BITMAPFILEHEADER), &dwBytesWritten, NULL);
BITMAPINFOHEADER BitmapInfoHeader;
BitmapInfoHeader.biSize=sizeof(BITMAPINFOHEADER);
BitmapInfoHeader.biWidth=w;
BitmapInfoHeader.biHeight=h;
BitmapInfoHeader.biPlanes=1;
BitmapInfoHeader.biBitCount=16;
BitmapInfoHeader.biCompression=BI_BITFIELDS;
BitmapInfoHeader.biSizeImage=h*RowLength;
BitmapInfoHeader.biXPelsPerMeter=0;
BitmapInfoHeader.biYPelsPerMeter=0;
BitmapInfoHeader.biClrUsed=0;
BitmapInfoHeader.biClrImportant=0;
r=WriteFile(hFile, &BitmapInfoHeader, sizeof(BITMAPINFOHEADER), &dwBytesWritten, NULL);
r=WriteFile(hFile, MASK, sizeof(MASK), &dwBytesWritten, NULL);