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

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

ошибка с GetDIBits при глубине цвета менее 9 бит. [D7, WinXP]


Grief ©   (2005-09-27 19:33:00) 

Почему при использовании

{Bits: array[0..32767] of Byte;}
GetDIBits(Bitmap.Canvas.Handle, Bitmap.Handle, Y, 1, @Bits, BitInfo, DIB_RGB_COLORS);

если Bitmap.bmiHeader.biBitCount равен или меньше 8, происходит "access violation"? Я знаю, что режимы с глубиной ниже или равной 8 бит/пикс. используют палитру, но ошибка то почему? И вываливается она не сразу, а только по окончании функции, в которой происходит вызов GetDIBits.
P.S. Да, Bits: TByteArray; при использовании PByteArray у меня была такая же ошибка всегда, правда я не уверен, что это не из-за моего криворукия...


Grief   (2005-09-28 08:30:00) [1]

Да, я заметил ошибку - после чтения заголовка из файла насильственно устанавливается BitInfo.bmiHeader.biCompression := BI_RGB; Пардон за глупый вопрос, MBo - спасибо!


MBo   (2005-09-28 06:51:00) [2]

Покажи, как заполняешь структуру BitInfo


Наверх

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