Сохраните CBitmap в файл .bmp

Я работаю с объектом CBitmap, используя объект CDC. Когда я закончу с этим, я хочу сохранить его в файл. Я видел кое-что о процессе с этим кодом -bmp-file-in-mfc?forum=vcmfcatl" rel="nofollow">ССЫЛКА:

CFile file;
if(file.Open(szFileName, CFile::modeCreate | CFile::modeWrite))
{ 
    file.Write(&bh, sizeof(BITMAPFILEHEADER));
    file.Write(&(bi.bmiHeader), sizeof(BITMAPINFOHEADER));
    file.Write(lpBitmapBits, 3 * nWidth * nHeight);
    file.Close();
}

Я сомневаюсь в BITMAPFILEHEADER и BITMAPINFOHEADER. Как я могу заполнить их заданными CBitmap или CDC?


person jabujavi    schedule 21.07.2014    source источник
comment
Я не думаю, что это сработает... вы можете использовать класс CImage... у него есть метод Save...   -  person PrfctByDsgn    schedule 22.07.2014
comment
Да. Наконец-то я это сделал... Легче, чем я ожидал.   -  person jabujavi    schedule 22.07.2014


Ответы (1)


Вы можете попробовать это:

CImage image;

image.Attach(CDCvar.GetCurrentBitmap());
image.Save(_T(".\\test.bmp"), Gdiplus::ImageFormatBMP);
person barbarity    schedule 29.01.2016