Главная страница
    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.45 MB
Время: 0.008 c
3-37580
MaxDDinc
2003-12-13 20:52
2004.01.13
Теряются данные в локальной БД после сбоя питания


14-37896
VID
2003-12-21 19:17
2004.01.13
Работаем с ApplicationEvents.OnMessage


3-37505
Виталя
2003-12-17 10:01
2004.01.13
Как засунуть exe-файл в БД.


1-37758
Ivolg
2003-12-29 20:20
2004.01.13
Язык


14-37928
Agent[007]
2003-12-20 16:55
2004.01.13
СРОЧНО! У МЕНЯ 22 ДЕКАБРЯ ЭКЗАМЕН ПО ГЕОМЕТРИИ!





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский