Вниз
Скачать: 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
1-1117183840
juice
2005-05-27 12:50
2005.06.14
try ... except ... finally


1-1117529916
voron
2005-05-31 12:58
2005.06.14
математика


3-1115279133
Hans Cristian
2005-05-05 11:45
2005.06.14
Ошибка 15877


4-1114077323
ANB
2005-04-21 13:55
2005.06.14
Номер EM_GETSELTEXT


8-1109365806
Hedrox
2005-02-26 00:10
2005.06.14
Проигрывание треков




   Наверх