есть DIbitmap одного формата (скажем, 24 битный)
хочется сделать bitmap другого формата, из которого можно было бы взять адрес data
я нашел два способа — оба не работают
исходная битмап лежит по адресу buffer_start, описание bi (типа BITMAPINFO)
через DDB
hbmp=CreateCompatibleBitmap(dc->m_hDC,nx,ny);
SetDIBits(NULL,hbmp,0,100,buffer_start,&bi,DIB_RGB_COLORS);
bmp=CBitmap::FromHandle(hbmp);
bmp->GetBitmap(&binfo);
после этого поле binfo.bmDits== 0x00000000
через DIB
bits = new char[nx*ny*4];
hbmp=CreateBitmap(fr->row_pixels,fr->row_count,1,24,bits);
SetDIBits(NULL,hbmp,0,100,buffer_start,&bi,DIB_RGB_COLORS);
— в этой версии не выполняется функция SetDIBits (и вроде не должна)
Как быть — очень хочется чтоб работало быстро и без лишних копирований битмапа