Форум: "Основная";
Текущий архив: 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