Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

DrawDibDraw

12K
05 июля 2005 года
Vick
1 / / 05.07.2005
I have a trouble with DrawDibDraw function when field biCompression in
BITMAPINFOHEADER structure is equal to BI_BITFIELDS(when it's equal to BI_RGB there's
no problem at all, but I need to use BI_BITFIELDS because my bitmap is in RGB 565
format)

BI_BITFIELDS specifies a mask field for each of the red, green and blue pixel components.
I have heard that it is valid to append the masks to the end of the BITMAPINFOHEADER
in much the same way that a palette is appended for palettised formats, and I did in this way
but I didn't get any image on display at all.
Would you be so kind to suggest me any ideas?
Thank's a lot!
Here's my source code:


#define WIDTH 800
#define HEIGTH 600

void drawMap(CDC* pDC, unsigned int addrBuf) {

CRect rcDIB;
SetRect(rcDIB,0,0,WIDTH,HEIGTH);

HDRAWDIB drawdib_handle;
drawdib_handle = DrawDibOpen();

BITMAPINFOHEADER bi;
bi.biSize = sizeof(bi);
bi.biWidth = WIDTH;
bi.biHeight = HEIGTH;
bi.biPlanes = 1;
bi.biBitCount = 16;
bi.biCompression = BI_BITFIELDS;
bi.biSizeImage = WIDTH*HEIGTH*sizeof(WORD);
bi.biXPelsPerMeter = 0;
bi.biYPelsPerMeter = 0;
bi.biClrUsed = 0;
bi.biClrImportant = 0;

DWORD bitMapInfo[0xD];
memcpy(bitMapInfo, &bi, sizeof(BITMAPINFOHEADER));

DWORD bmiColors[3];
bmiColors[0] = 0x001F;
bmiColors[1] = 0x07E0;
bmiColors[2] = 0xF800;

memcpy((void*)((DWORD)bitMapInfo + bi.biSize), bmiColors, 3*sizeof(DWORD));

pDC->LPtoDP(rcDIB);
rcDIB -= pDC->GetViewportOrg();
pDC->SetMapMode(MM_TEXT);

DrawDibDraw
(
drawdib_handle,
pDC->GetSafeHdc(),
rcDIB.left,
rcDIB.top,
rcDIB.Width(),
rcDIB.Height(),
(BITMAPINFOHEADER *)bitMapInfo,
(void*)addrBuf,
0,
0,
WIDTH,
HEIGTH,
0
);
}
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог