Автор
|
Тема: Помогите с Bitmap`ами, плиз!
|
Mihail |
опубликован 23-05-2001 09:34 MSK
Я прочитал статью на "Исходниках" про битовые образы и контекст памяти. http://www.sources.ru/cpp/cpp_cbitmap_onpaint.shtml По этому поводу у меня возник вопрос: как мне создать bitmap, который располагается только в памяти и нигде не рисуется, а после отрисовки в памяти, например сохраняется в файл. Т. е. например, у меня есть Dll, в которой, скажем, есть некая функция, которая создает в памяти рисунок (монохромный) и, преобразуя его в строку, возвращает или сохраняет в файл. Проблема заключается в использовании CDC. При создании совместимого контекста необходимо иметь уже существующий контекст, с которым и будет совместимость. Если его нет, то можно создать экземпляр CDC "c нуля", вызвав функцию CreateDC(...). virtual BOOL CreateDC( LPCTSTR lpszDriverName, LPCTSTR lpszDeviceName, LPCTSTR lpszOutput, const void* lpInitData ); {Visual C Documentation -> Reference -> Microsoft Foundation Class Library -> Class Library Reference -> CDC -> Member Functions -> CDC::CreateDC} Но в этом случае необходимо знать имя драйвера. А какое оно будет для отрисовки в памяти? -- С уважением, Михаил.
|
Mihail
|
опубликован 23-05-2001 09:34 MSK
И как потом мне этот рисунок сохранить в файл и представить в виде строки? |
OlegN
|
опубликован 23-05-2001 10:54 MSK
Есть пару вариантов : ::CreateCompatibleDC(NULL); или CreateDC("DISPLAY", NULL, NULL, NULL);Для получения заголовка bitmap-a и массива бит используй ::GetObject и структуру BITMAP Ну а как записать массив в файл я тебе рассказывать не буду.
|
al
|
опубликован 23-05-2001 11:20 MSK
Для работы с битмапами в памяти в Win32 есть специальная функция CreateDIBSection. |
talex
|
опубликован 17-07-2001 15:00 MSK
Ya tut uslishal o tom chto vi govorite. I podumal mozhet vi mne pomozhete. Ya poluchayu etot chertov masiv bitov. menya interesyet poryadok tsvetov v etom massive. T.e. pix[0] = red0, pix[1] = green0, pix[2] = blue[0], pix[3] =red1, pix[4] = green1, pix[5] = blue1..... i t.p. Tak li eto? Thx zaranee. |
golem
|
опубликован 27-07-2001 17:00 MSK
Нет. В Windows не RGB, а BGR. |