CImageによりBITMAPをファイルに保存(VC++) C++7.0からCImageクラスが追加されました。CImage
はビットマップの拡張サポートを提供するクラスです。JPEG、GIF、BMP、PNG形式のイメージの読み込みや保存などができます。 #include "atlimage.h" void SaveBitmap(HBITMAP hBitMap) { CImage image; image.Attach(hBitMap); image.Save(L"d:\\test.bmp"); image.Save(L"d:\\test.jpg"); image.Detach(); }例:View画面のハードコピー。 void CSaveImageTestView::OnEditSaveview() { CClientDC dc(this); CBitmap bmpForSave; CDC cdcForSave; CRect r; GetClientRect(&r); bmpForSave.CreateCompatibleBitmap(&dc, r.Width(), r.Height()); cdcForSave.CreateCompatibleDC(&dc); cdcForSave.SelectObject(bmpForSave); cdcForSave.BitBlt(0, 0, r.Width(), r.Height(), &dc, 0, 0, SRCCOPY); SaveBitmap((HBITMAP)bmpForSave); }例:View画面のOnDraw()の結果をファイルに保存する。 void CSaveImageTestView::OnEditSaveviewpixsel() { // TODO: Add your command handler code here CClientDC dc(this); CBitmap bmpForSave; CDC cdcForSave; CRect r; GetClientRect(&r); bmpForSave.CreateCompatibleBitmap(&dc, r.Width(), r.Height()); cdcForSave.CreateCompatibleDC(&dc); cdcForSave.SelectObject(bmpForSave); OnDraw(&cdcForSave); SaveBitmap((HBITMAP)bmpForSave); } |