![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как определить, сколько байт/бит занимает один пиксел битмапа ?
ANB © (2006-03-31 14:57:00)Как вариант - определить размер строки, возвращаемый
Line := BitMap.ScanLine[Line_No];
?
MBo (2006-03-31 16:48:00) [1]>А вот Scanline даже при неприсвоенном работал
GetScanLine вызывает при необходимости DibNeeded, только лучше контролировать всё самому
>насильно присвоил PixelFormat 32 бита
в общем случае - нужно узнавать глубину цвета устройства, с которого снимается скрин - GetDeviceCaps
ANB (2006-03-31 16:35:00) [2]
> MBo © (31.03.06 15:21) [3]
Короче, я насильно присвоил PixelFormat 32 бита и все работает.
А вот Scanline даже при неприсвоенном работал. Только что потом с это строкой делать - было непонятно.
MBo (2006-03-31 15:21:00) [3]Что значит свежескопированный?
Видимо, это не DIB, а DDB - тогда к нему и Scanline неприменимо, нужно сначала перевести в DIB (назначением HandleType или PixelFormat)
ANB (2006-03-31 15:19:00) [4]
> MBo © (31.03.06 15:12) [1]
> >сколько байт/бит занимает один пиксел битмапа ?
> см. Pixelformat
Смотрел. Если достаю битмап из блобика - там все по честному. А если он свежескопированный - то там нолик. А мне надо сравнить кусок скриншота с куском из блоба.
MBo (2006-03-31 15:12:00) [5]>сколько байт/бит занимает один пиксел битмапа ?
см. Pixelformat
>определить размер строки
размер строки округляется вверх на границу в 4 байта