Вниз
Скачать: CL | DM;

Где искать буфер TBitmap   Найти похожие ветки 

← →
imm   (2005-05-31 10:41) [0]

Люди добрые помогите, где мне отыскать адрес буфера (ну где хрянятся все пиксели в виде dw), мне просто нужен быстрый доступ к этим самым пикселям и я хочу писать алгоритм обработки на asm, но я не знаю как и где этот буфер храниться... Помогите... Зараннее спасибо.


← →
Alx2 ©   (2005-05-31 10:43) [1]

У TBitMap в св-ве ScanLine


← →
WondeRu ©   (2005-05-31 10:46) [2]

GetDIBits


← →
Immortal ©   (2005-05-31 10:48) [3]

А он там в виде обычного двумерного массива разложенного в одну строку ???


← →
TUser ©   (2005-05-31 10:56) [4]

> Immortal ©   (31.05.05 10:48) [3]

Ну, если на то пошло, то любой двухмерный массив расположен в одну строку. В данном же случае, TBitMap хранит ссылку hBitMap на объект создаваемый и обслуживаемый операционной системой. Судя по тому, что написали программисты Борланда система действительно хранит двухмерный массив точек
   Integer(Result) := Integer(bmBits) +
     Row * BytesPerScanline(biWidth, biBitCount, 32);

Да и как иначе-то собственно?


← →
WondeRu ©   (2005-05-31 10:56) [5]

Immortal ©   (31.05.05 10:48) [3]
да... читай Help


← →
Immortal ©   (2005-05-31 12:02) [6]

Извените за назойливость, но ScanLine работает только если BitMap перед вызовом загружен из файла (чего мне не надо), а GetDIBits это нечто злое (с Win API дружу пока плохо), я бы был благодарен, если бы мне дали примерчик всё таки с GetDIBits или хотя бы с GetDIB, а у меня что-то не получается...


← →
Immortal ©   (2005-05-31 12:03) [7]

Извените за назойливость, но ScanLine работает только если BitMap перед вызовом загружен из файла (чего мне не надо), а GetDIBits это нечто злое (с Win API дружу пока плохо), я бы был благодарен, если бы мне дали примерчик всё таки с GetDIBits или хотя бы с GetDIB, а у меня что-то не получается...


← →
WondeRu ©   (2005-05-31 12:24) [8]

параметры функций смотри в хелпе

var
 Data              : array[0..n] of Byte;
 
 BMP         : TBitmap;

 BMInfo            : TBitmapInfo;
 Size              : DWORD;

FillChar (BMInfo, SizeOf(BMInfo), 0); //обнуляем
BMinfo.bmiHeader.biSize := sizeof(TBitmapInfoHeader); //высталяем размер
GetDIBits (LittleBMP.Canvas.Handle, LittleBMP.Handle, 0, LittleBMP.Height, nil, BMInfo, DIB_RGB_COLORS);//получаем BMInfo

//записываем в массив Data
GetDIBits(BMP.Canvas.Handle,
         BMP.Handle,
         0,
         BMP.Height,
         @Data[0],
         BMInfo,
         DIB_RGB_COLORS);


← →
WondeRu ©   (2005-05-31 12:27) [9]

WondeRu ©   (31.05.05 12:24) [8]
LittleBMP == BMP (просто не стер Little;) )



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

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.03 c
14-1117183135
boriskb
2005-05-27 12:38
2005.06.14
Долги


1-1117600097
ORMADA
2005-06-01 08:28
2005.06.14
Drag n Drop + Ctrl


4-1114276037
Виталик
2005-04-23 21:07
2005.06.14
Вопрос по логону.


6-1111439002
Zion
2005-03-22 00:03
2005.06.14
Как узнать IP-адрес компа в локалке по его сетевому имени?


3-1115143942
Erich
2005-05-03 22:12
2005.06.14
Как "выдрать" описание поля?




   Наверх