瞧瞧這個將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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 瞧瞧,這樣的「函式」才叫 Pythonic函式Python
- 將bmp檔案壓縮為jpg檔案
- bmp是什麼格式的檔案 怎麼把jpg轉換為bmp
- 將bmp檔案轉換成JPEG(待修改,目前可轉換但圖片倒轉)
- C++ 的函式分檔案編寫C++函式
- Mac如何將多個檔案快速歸類到一個資料夾裡Mac
- 儲存文字到一個檔案裡
- 如何將iso檔案安裝到VirtualBox裡的ubuntu去Ubuntu
- [程式設計] 你真的會寫函式註釋?這裡給你一個答案程式設計函式
- jpeg,png,bmp轉換成icon,windows本地匯出icon檔案Windows
- 【Python】將網格資料寫入到VTK檔案Python
- 怎麼將bmp格式圖片轉換jpg格式的
- 這個遊戲檔案館裡有什麼?遊戲
- 專案裡的一些小函式函式
- 將DBF檔案(dBase, FoxPro等)中的資料轉換到SQLiteSQLite
- python 將 CVS檔案轉為HTML檔案PythonHTML
- 如何將一個PDF檔案裡的圖片批量匯出
- 將數值轉換為字串的函式字串函式
- 獲取一個資料夾下所有指定字尾名(.java)的檔案(包括子資料夾中的內容),並將這些檔案的絕對路徑寫入到一個文字檔案中Java
- SqlServer中將字串轉utf-8的函式、支援中文的UrlEncode函式SQLServer字串函式
- php函式入門學習(陣列常見函式2 & 檔案基礎讀寫)PHP函式陣列
- ppm轉換bmp
- 將 crt 檔案匯入到 jks 檔案 -cg
- 將圖片旋轉(這裡不是旋轉imageView)View
- 用Java寫一個PDF,Word檔案轉換工具Java
- 如何將.ipynb檔案轉換為.py檔案
- 如何將BigWig 檔案轉化為 bed 檔案
- 簡單的檔案快取函式快取函式
- 在這裡書寫每天學到的和所想的
- 將檔案轉移到一個資料夾內batBAT
- 寫一個深度克隆函式函式
- 將ASD光譜儀的.asd檔案轉為文字檔案
- 將你的Gradle依賴轉換為函式Gradle函式
- # 探索-如何將單個vue檔案轉換為小程式所需的四個檔案(wxml, wxss, json, js)VueXMLJSON
- js中在一個函式中引用另一個函式中的函式,可以這麼做JS函式
- 關於onethink 目錄,檔案讀寫檢測函式中的問題函式
- python將函式寫入模組中的小技巧Python函式
- 教你如何運用python實現簡單檔案讀寫函式Python函式
- golang寫入檔案時,覆蓋前檔案(將前檔案清空)Golang