各位朋友你們好,我在把RGB565數(shù)據(jù)保存成bmp文件時遇到了一些困難,麻煩大家能夠給我提一些解決方法
我查閱MSDN已經(jīng)知道了bmp文件的結構,按照相關參考寫入文件后不能得到我想要的結果,以下是相關代碼
(我覺得問題出在BITMAPINFOHEADER(紅字代碼)這個結構上,文檔還是沒有看明白)
圖片分辨率是320*240,數(shù)據(jù)格式是RGB565
- //生成位圖格式文件
- BITMAPFILEHEADER mfh;
- BITMAPINFOHEADER mih;
- DWORD closeMask[3];
- mfh.bfType = 0x4d42;//BM
- mfh.bfSize = sizeof(BITMAPFILEHEADER) + sizeof(BITMAPINFOHEADER) + 320 * 240 * 2 + 12;
- mfh.bfOffBits = sizeof(BITMAPFILEHEADER) + sizeof(BITMAPINFOHEADER);
- mfh.bfReserved1 = 0;
- mfh.bfReserved2 = 0;
- <font color="Red">
- mih.biSize = sizeof(BITMAPINFOHEADER) + 12;
- mih.biWidth=320;
- mih.biHeight=240;
- mih.biPlanes=1;
- mih.biBitCount=16;
- mih.biCompression= BI_BITFIELDS;
- mih.biSizeImage= 320 * 240 * 2;
- mih.biXPelsPerMeter=3780;
- mih.biYPelsPerMeter=3780;
- mih.biClrUsed=12;
- mih.biClrImportant=0;</font>
- closeMask[2]=0x1f;
- closeMask[1] = 0x07e0;
- closeMask[1] = 0xf800;
- WriteFile(hMyMbp, &mfh, sizeof(BITMAPFILEHEADER), &cWrite, NULL);
- WriteFile(hMyMbp, &mih, sizeof(BITMAPINFOHEADER), &cWrite, NULL);
- WriteFile(hMyMbp, closeMask, 12, &cWrite, NULL);
- WriteFile(hMyMbp, tTCPRecvBuff, sizeof(tTCPRecvBuff), &cWrite, NULL);
復制代碼
|