Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Visual C++/MFC/WTL > Как получить доступ к массиву пикселей, через hBmp


Автор: Travolta 23.2.2009, 12:59
День добрый! для C++
Я получаю hBmp

               HBITMAP hBmp = NULL;
               HDC hdc=GetWindowDC(0);
               HDC hDCMem = CreateCompatibleDC(NULL);
               RECT rect={X,Y,DX,DY};
               hBmp = CreateCompatibleBitmap(hdc, rect.right - rect.left, rect.bottom - rect.top);
               ReleaseDC(0,hdc);
Подскажите как получить непосредственно доступ к массиву пикселей, через hBmp?

Автор: jonie 23.2.2009, 14:22
GetDIBits вам поможет. по координате нужно выбрать контекст и сделать GetPixel 

Автор: Earnest 24.2.2009, 08:53
Прямой доступ к массиву пикселей bitmap получить нельзя. Только получить копию в свой буфер и там ковырять. А доступ через Get\SetPixel ОЧЕНЬ медленный.
Если нужен именно прямой доступ, нужно использовать не bitmap, а dibsection: CreateDIBSection и т.д. DibSection тоже имеет хандл типа HBITMAP и может использоваться там же где "обычный" BitMap.

Автор: Travolta 25.2.2009, 14:30
Earnest , jonie.
Спасибо, что ответили.
GEtPixel действительно медленная функция.
По ходу мне ещё дали ссылку. может пригодится кому-то. 
(Помощь, Помощь и Помощь форуму).


http://www.codeproject.com/KB/graphics/rpl...x?display=Print

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)