Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.01.13;
Скачать: CL | DM;

Вниз

GetDIBits периодически ошибается   Найти похожие ветки 

 
Vladimir Karpus   (2003-11-07 18:19) [0]

Всем привет!

Есть код:

GetDIBits(MemDC0, bmapGraph.Handle, 0, HeightTo, nil, bmi, DIB_RGB_COLORS);
SetLength(arrImageTo1, bmi.bmiHeader.biSizeImage);
if GetDIBits(MemDC0, bmapGraph.Handle, 0, bmi.bmiHeader.biHeight, arrImageTo1, bmi, DIB_RGB_COLORS)=0 then
raise Exception.Create("GetDIBits:"#13#10+SysErrorMessage(GetLastError));

и этот код периодически вываливает ошибку "Нехватает памяти для выполнения команды."
Из-за чего GetDIBits может давать такую ошибку? Ведь размер массиву для захваченного изображения задается на строку выше..


 
Rog   (2003-11-08 05:16) [1]

по-моему в справке написано, что нельзя большие куски выхватывать.
может быть у тебя большой кусок?


 
Vladimir Karpus   (2003-11-08 14:15) [2]

В том то и дело, что ошибка не зависит от размера картинки.
картинка 800*600 проходит, а на 500*400 может выкинуть ошибку, а может и не выкинуть...


 
miek ©   (2003-11-08 21:43) [3]

В строчке с if попробуй писать аrrImageTo1[0]


 
Ricks ©   (2003-11-08 21:59) [4]

А можно пополней. Что за MemDC0? И как ты получаеш "bmi" - tagBITMAPINFO?


 
Vladimir Karpus   (2003-11-10 12:14) [5]

Вот почти полный код...

bmi: TBitmapInfo;
....

ZeroMemory(@bmi, SizeOf(bmi));
bmi.bmiHeader.biSize := SizeOf(TBitmapInfoHeader);
bmi.bmiHeader.biCompression :=BI_RGB;
bmi.bmiHeader.biBitCount := 24;
bmi.bmiHeader.biPlanes := 1;
bmi.bmiHeader.biSizeImage:=0;
bmi.bmiHeader.biWidth := WidthTo;
bmi.bmiHeader.biHeight := HeightTo;
arrImageTo1:=nil;
MemDC0 := CreateCompatibleDC(0);
GetDIBits(MemDC0, bmapGraph.Handle, 0, HeightTo, nil, bmi, DIB_RGB_COLORS);
SetLength(arrImageTo1, bmi.bmiHeader.biSizeImage);

if GetDIBits(MemDC0, bmapGraph.Handle, 0, bmi.bmiHeader.biHeight, arrImageTo1, bmi, DIB_RGB_COLORS)=0 then
raise Exception.Create("GetDIBits:"#13#10+SysErrorMessage(GetLastError));



Страницы: 1 вся ветка

Текущий архив: 2004.01.13;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.02 c
4-37976
dar
2003-11-10 09:52
2004.01.13
Раскладка клавиатуры


1-37708
denimy
2003-12-25 18:54
2004.01.13
Последовательный запуск приложений


9-37485
Кен
2003-06-27 06:02
2004.01.13
Вау ! Сайт glscene обновился ! Не прошло и пол-года


1-37721
alexEagle
2003-12-30 14:49
2004.01.13
использование XML вместо INI


7-37952
Turonix
2003-10-30 15:53
2004.01.13
Как симулировать нажатие кнопки Page Down