![]() |
Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply |
![]() ![]() ![]() |
|
Immortal |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 33 Регистрация: 15.8.2003 Репутация: нет Всего: нет |
Люди добрые помогите, где мне отыскать адрес буфера (ну где хрянятся все пиксели в виде dw), мне просто нужен быстрый доступ к этим самым пикселям и я хочу писать алгоритм обработки на asm, но я не знаю как и где этот буфер храниться... Помогите... Зараннее спасибо.
|
|||
|
||||
Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 30 Всего: 484 |
Насколько я помню, нигде.
Можешь попробовать сохранить в буффер, модифицировать и загрузить обратно. |
|||
|
||||
Immortal |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 33 Регистрация: 15.8.2003 Репутация: нет Всего: нет |
Я слышал, что надо рыть где-то в GetDIBits, GetDIB, GetDIBSizes но я с Win API не дружу помогите мне плиз.
|
|||
|
||||
Girder |
|
|||
![]() Лентяй 2 ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1993 Регистрация: 12.5.2004 Репутация: 25 Всего: 155 |
Например:
Это сообщение отредактировал(а) Girder - 31.5.2005, 11:14 -------------------- Как слышим, так и пишим. Истина где-то там... |
|||
|
||||
p0s0l |
|
|||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 14 Всего: 112 |
Если речь про TBitmap (судя по названию темы) - то делай Bmp.ScanLine[0] - адрес начала буфера. Чтобы они были в виде "dw", то предварительно нужно выставить bmp.PixelFormat := pf32bit. Сделай на форуме поиск по слову "ScanLine", найдешь примеры...
-------------------- С уважением, г-н Посол. |
|||
|
||||
MBo |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 234 Регистрация: 10.6.2002 Репутация: 1 Всего: 18 |
> Bmp.ScanLine[0] - адрес начала буфера
Не совсем так. В большинстве битмапов строки лежат в обратном порядке, поэтому началом будет Bmp.ScanLine[Height-1] А для определения нужно помотреть в InfoHeader знак поля biHeight biHeight Specifies the height of the bitmap, in pixels. If biHeight is positive, the bitmap is a bottom-up DIB and its origin is the lower left corner. If biHeight is negative, the bitmap is a top-down DIB and its origin is the upper left corner. |
|||
|
||||
p0s0l |
|
|||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 14 Всего: 112 |
Верно подмечено
-------------------- С уважением, г-н Посол. |
|||
|
||||
poor_yorik |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 148 Регистрация: 12.1.2005 Где: Общаги г. Киева Репутация: нет Всего: 8 |
Если это конечно то что тебе нужно но за пикселю в этой компоненте отвечает свойство
TBitmap.Handle. Указатель на табицу пикселей. Аналогично TBitmap.Palette - указатель на палитру. --------------------
Семь раз отмерь, один раз - откомпиль.... Семь раз отпей, один раз - отлей... Семь раз отъешь, один раз - не жадничай и другим дай... |
|||
|
||||
MBo |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 234 Регистрация: 10.6.2002 Репутация: 1 Всего: 18 |
poor_yorik
Это совсем не то |
|||
|
||||
Dmitry V.Abramov |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 177 Регистрация: 30.9.2003 Где: Saint-Petersburg Репутация: нет Всего: 4 |
Совсем не так. Знак biHeight проверяет сама функция GetScanLine перед выдачей результата. Тобишь, ScanLine[0] будет адресом первой строки при любой власти. --------------------
/DVA |
|||
|
||||
MBo |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 234 Регистрация: 10.6.2002 Репутация: 1 Всего: 18 |
Dmitry V.Abramov
>ScanLine[0] будет адресом первой строки Это адрес ВЕРХНЕЙ строки при выводе битмапа, но не всегда начало адресного пространства, отведенного под пиксельный буфер |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: WinAPI и системное программирование" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |