19,468
社区成员
发帖
与我相关
我的任务
分享
FILE *pFile=fopen("1.bmp","wb");
unsigned char *pBmpBuf;//位图数据
RGBQUAD *pColorTable;//调色板数据
for(int i=0;i<12800;i++)
pBmpBuf[i]=0xFF;//建立一320*320像素的位图,位深为1,则共需12800字节来存储像素数据
BITMAPFILEHEADER bmfHdr; //文件头
//位图文件头结构
BITMAPINFOHEADER bi;//信息头
pColorTable[0].rgbBlue=0;//颜色表数据
pColorTable[0].rgbGreen=0;
pColorTable[0].rgbGreen=0;
pColorTable[0].rgbReserved=0;
pColorTable[1].rgbBlue=255;
pColorTable[1].rgbGreen=255;
pColorTable[1].rgbGreen=255;
pColorTable[1].rgbReserved=0;
bi.biSize = sizeof(BITMAPINFOHEADER);
bi.biWidth = 320;
bi.biHeight =320;
bi.biPlanes = 1;
bi.biBitCount = 1;
bi.biCompression = BI_RGB;
bi.biSizeImage = 0;
bi.biXPelsPerMeter = 0;
bi.biYPelsPerMeter = 0;
bi.biClrUsed = 0;
bi.biClrImportant = 0;
bmfHdr.bfType = 0x4D42; // "BM"
//dwDIBSize=12826;
bmfHdr.bfSize = 12862;
bmfHdr.bfReserved1 = 0;
bmfHdr.bfReserved2 = 0;
bmfHdr.bfOffBits = 62;
fwrite(&bmfHdr, sizeof(BITMAPFILEHEADER),1, pFile);
fwrite(&bi, sizeof(BITMAPINFOHEADER),1, pFile);
fwrite(pColorTable, sizeof(RGBQUAD),2, pFile);
fwrite(pBmpBuf, 12800, 1, pFile);
fclose(pFile);