Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.06.14;
Скачать: [xml.tar.bz2];

Вниз

Где искать буфер 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 вся ветка

Форум: "Основная";
Текущий архив: 2005.06.14;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.033 c
3-1115751825
Vir
2005-05-10 23:03
2005.06.14
Счет фактура


3-1114185659
@k@DElpher
2005-04-22 20:00
2005.06.14
подсчёт кол-во в складской программе


14-1117097701
OX
2005-05-26 12:55
2005.06.14
Может быть, хоть здесь мне помогут...


1-1117448692
Garfunkel
2005-05-30 14:24
2005.06.14
Отображение русских букв


1-1117285735
Malenkii Myk
2005-05-28 17:08
2005.06.14
Программа удаляет саму себя. Реально ?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский