瞧瞧這個將CBitmap寫到Bmp檔案裡的函式 (轉)
首先,這個只能針對24色的bitmap.
void CAppDlg::WriteBmp(CBitmap *PBitmap)
{
BITMNFO *m_pBMI;
BYTE *m_pDIBData;
BITMAPFILEHEADER bfh;
BITMAPINFOHEADER bi;
BITMAP BM;
PBitmap->Get(sizeof(BM),&BM);
CClientDC dc(this);
bi.biSize = sizeof(BITMAPINFOHEADER);
bi.biWidth = BM.bmWidth;
bi.biHeight = BM.bmHeight;
bi.biPlanes = 1;
bi.biBitCount = 24;
bi.biCompression = 0;
bi.biSizeImage = 0;
bi.biXPelsPerMeter = 0;
bi.biYPelsPerMeter = 0;
bi.biClrUsed = 0;
bi.biClrImportant = 0;
bfh.bfType=0x4d42;
bfh.bfOffBits=sizeof(bfh)+sizeof(BITMAPINFOHEADER);
bfh.bfSize=bfh.bfOffBits+BM.bmWidth*BM.bmHeight*3;
bfh.bfReserved1=0;
bfh.bfReserved2=0;
m_pBMI=(BITMAPINFO*)new char[sizeof(BITMAPINFO)];
m_pDIBData=(BYTE*)new char[bfh.bfSize-bfh.bfOffBits];
memcpy(m_pBMI,&bi,sizeof(BITMAPINFOHEADER));
GetDIBits(dc.GetSafeHdc(), (HBITMAP)PBitmap->GetSafeHandle(), 0l, (D)bi.biHeight,
(LPVOID)m_pDIBData,(LPBITMAPINFO)m_pBMI, (DWORD)DIB_RGB_COLORS);
CFile file;
if(!file.Open(m_FileName,CFile::modeCreate|CFile::modeWrite))
{
MessageBox("error!");
return;
}
file.Write(&bfh,sizeof(bfh));
file.Write(m_pBMI,sizeof(BITMAPINFOHEADER));
file.Write(m_pDIBData,BM.bmWidth*BM.bmHeight*3);
file.Close();
delete m_pBMI;
delete m_pDIBData;
}
其實橫簡單吧!在本站的GetPicture中有.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-987437/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 讀寫INI檔案的四個函式 (轉)函式
- 瞧瞧,這樣的「函式」才叫 Pythonic函式Python
- 將bmp檔案壓縮為jpg檔案
- C語言putc()函式:寫檔案函式(將一指定字元寫入檔案中)C語言函式字元
- BMP檔案結構 (轉)
- C語言fputc()函式:寫檔案函式(將一指定字元寫入檔案流中)C語言函式字元
- 將ASM裡面的檔案copy到檔案系統ASM
- com.jivesoftware.*這個包的原檔案到哪裡下載?
- C++ 的函式分檔案編寫C++函式
- bmp是什麼格式的檔案 怎麼把jpg轉換為bmp
- Mac如何將多個檔案快速歸類到一個資料夾裡Mac
- 儲存文字到一個檔案裡
- 將bmp檔案轉換成JPEG(待修改,目前可轉換但圖片倒轉)
- 各類檔案管理函式 (轉)函式
- BMP檔案結構
- BMP檔案詳解
- [程式設計] 你真的會寫函式註釋?這裡給你一個答案程式設計函式
- 輕輕鬆鬆找檔案--支援回撥函式的通用檔案查詢函式 (轉)函式
- 這個遊戲檔案館裡有什麼?遊戲
- 將DSP的flash裡面的函式轉移到ram中的步驟函式
- 如何將iso檔案安裝到VirtualBox裡的ubuntu去Ubuntu
- 函式式 Java 到函式式 Kotlin 的轉換函式JavaKotlin
- 將24位BMP真彩圖轉換成BMP灰度圖
- 在Visual C++中使用fopen()函式來讀寫檔案 (轉)C++函式
- 利用RMAN將非ASM檔案移動到ASM裡 - [ASM]ASM
- shell裡邊子函式與主函式的例項(轉)函式
- 專案裡的一些小函式函式
- BMP點陣圖檔案結構及VC操作 (轉)
- 在VC中自建操作BMP點陣圖檔案的類 (轉)
- Api函式列表——與檔案相關 (轉)API函式
- MFC檔案複製的函式程式程式碼 (轉)函式
- 如何將一個PDF檔案裡的圖片批量匯出
- 轉大寫函式MoneyCn函式
- 從網路裡面獲取資料寫入到檔案
- C語言fgetc()函式:讀檔案函式(由檔案中讀取一個字元)C語言函式字元
- 自己寫的unix檔案拷貝指令cp實現函式函式
- C語言lseek()函式:移動檔案的讀寫位置C語言函式
- C語言rewind()函式:將檔案指標重新指向檔案開頭C語言函式指標