Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Странное ограничение.... [D7, WinXP]


Ricks ©   (2007-08-17 15:03:00) 

Только что нашел.
Вот это не работает, если размер картинки (WxHx4) больше 1МБ


var under : PRGBAData;
   fDC   : HDC;
   uBM   : HBITMAP;
   oBM   : HBITMAP;
   w, h  : integer;
begin
w:=header.bmiHeader.biWidth;
h:=header.bmiHeader.biHeight;

fDC:=CreateCompatibleDC(aDC);
uBM:=CreateBitmap( w, h, 1, 32, nil );
oBM:=SelectObject(fDC, uBM);
BitBlt( fDC, 0, 0, w, h, aDC, x0, y0, SRCCOPY );
*******************************************
under:=SysGetMem(w * h * sizeof(RGBA));
GetDIBits( fDC, uBM, 0, h, under, header, DIB_RGB_COLORS );

imBlendData( under, bits, w * h );

SetDIBitsToDevice(aDC, x0, y0, w, h, 0, 0, 0, h, bits, header, DIB_RGB_COLORS);
**********************************************
SysFreeMem(under);
SelectObject(fDC, oBM);
DeleteObject(uBM);
DeleteDC(fDC);


Память вроде бы выделяет, imBlendData выполняется нормально, а вот SetDIBitsToDevice не работает


Ricks   (2007-08-17 15:04:00) [1]

Вернее так работает, а вот
SetDIBitsToDevice(aDC, x0, y0, w, h, 0, 0, 0, h, under, header, DIB_RGB_COLORS);

Нет!


Наверх

Титульная страница Поиск, карта сайта Написать письмо