Вниз
Скачать: 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.023 c
14-1117203605
Narik
2005-05-27 18:20
2005.06.14
MediaPlayer1


1-1117282425
PIF
2005-05-28 16:13
2005.06.14
Компиляция res файла при старте приложения


1-1117468406
PIF
2005-05-30 19:53
2005.06.14
Компиляция res файла


1-1117430496
vvllaadd
2005-05-30 09:21
2005.06.14
Перенос текста в BitBtn ...


1-1117525312
liver
2005-05-31 11:41
2005.06.14
ProcessStatus




   Наверх