Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.05.2012, 02:46   #1
Don Karleone
Форумчанин
 
Регистрация: 05.04.2010
Сообщений: 410
По умолчанию Как получить указатель на первый байт битового образа?

Код:
var
  pp: PDIBSection;
  BitMP: TBitmap
Создаю объект
Код:
BitMP:=TBitmap.Create;
BitMP.Width:=100;
BitMP.Height:=100;
Затем функцией GetObject(BitMP.Handle, SizeOf(DIBSection), PP); считываю информацию об объекте. Если я все правильно понимаю, то строка
Код:
PP^.dsBm.bmBits
должна возвращать указатель на первый байт самого рисунка, но она все время возвращает 0. Почему?
Мне в дальнейшем нужно иметь доступ к области памяти, чтобы менять пиксели не с помощью SetPixel(), а записывая данные прямо в память.
ICQ: 593-013-807
Don Karleone вне форума Ответить с цитированием
Старый 05.05.2012, 03:38   #2
EUGY
Форумчанин
 
Аватар для EUGY
 
Регистрация: 11.07.2010
Сообщений: 914
По умолчанию

Это поле bmBits содержит указатель на DIB-секцию или может быть нулем если битмэп аппаратно-зависимый (DDB).
Так что Вы лучше, имея хендл битмэпа и зная его размеры, положите его вторым параметром в GetDIBits, а в пятом получите указатель на первый байт.

Последний раз редактировалось EUGY; 05.05.2012 в 03:42. Причина: орфография
EUGY вне форума Ответить с цитированием
Старый 05.05.2012, 09:12   #3
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Битмап может обрабатываться в видеопамяти, куда процессору доступа нет. Поэтому нет и адреса.
s-andriano вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не получается получить значение из функции через указатель Casper-SC Общие вопросы C/C++ 5 12.01.2012 06:32
Не удается получить указатель на метод systemmind Общие вопросы C/C++ 1 22.09.2011 22:57
Почему первый байт пропускает? FantomasRUS Общие вопросы Delphi 2 12.05.2010 21:36
Вывести на экран шестнадцатиричное представление битового образа из памяти Kravnos Общие вопросы C/C++ 1 01.12.2009 23:49
Дан байт, нужно получить его предст. (assembler) JaZZ_XVIII Помощь студентам 2 10.06.2009 12:55