MFC 怎么创建空白BMP文件
MFC 如何创建空白BMP文件?
要在MFC中创建一副空白位图,怎么实现。要直接用向文件内写数据的办法,我试了好久没成功,大家看一下下面的程序有何问题
------解决方案--------------------
unsigned char *pBmpBuf;//位图数据
RGBQUAD *pColorTable;//调色板数据
--------------------------------
基本语法问题, 这2个都没分配内存,怎么可以往里写数据?
动态分配,或者
unsigned char pBmpBuf[320*320*n];
------解决方案--------------------
int a=sizeof(pBmpBuf);
指针的 size 可不就是 4 吗。
直接 int a=128;
要在MFC中创建一副空白位图,怎么实现。要直接用向文件内写数据的办法,我试了好久没成功,大家看一下下面的程序有何问题
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);
------解决方案--------------------
unsigned char *pBmpBuf;//位图数据
RGBQUAD *pColorTable;//调色板数据
--------------------------------
基本语法问题, 这2个都没分配内存,怎么可以往里写数据?
动态分配,或者
unsigned char pBmpBuf[320*320*n];
------解决方案--------------------
int a=sizeof(pBmpBuf);
指针的 size 可不就是 4 吗。
直接 int a=128;