Модераторы: feodorv, GremlinProg, xvr, Fixin
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как распределяется BitMap в памяти 
:(
    Опции темы
KoliaMor
Дата 19.12.2007, 13:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 11.1.2007

Репутация: нет
Всего: нет



1. Есть массив данных монохромного изоброжения
DWORD *Data[W*H];

где Data[0],Data[1] - яркость пикселя, может принимать значения от 0 до 0x3FF

Как из ентого массива сделать массив BitMap - желательно монохромный

плизззззззззззз.

2. Подскажите плиз, а то я че-то не догоняю:

Есть массив BYTE* Pixels[W*H*3];

Когда я делаю 
Код

GetBitmapBits(Image1->Picture->Bitmap->Handle, H*W,Pixels);
SetBitmapBits(Image2->Picture->Bitmap->Handle, H*W,Pixels);

 - копирование проходит нормально, а в если напрямую
Код
    
   for(int h=0;h<H;h++)
      for(int w=0;w<W;w++){
         Pixel[0] = GetRVal(Image1->Canvas->Pixelsp[w][h]);
         Pixel[1] = GetGVal(Image1->Canvas->Pixelsp[w][h]);
         Pixel[2] = GetBVal(Image1->Canvas->Pixelsp[w][h]);
          Pixel += 3;
      }  
       Pixel -= W*H*3];
SetBitmapBits(Image2->Picture->Bitmap->Handle, H*W,Pixels);

- копируется только один цвет.

Как распределяются RGB компоненты в массиве Pixel при использовании GetBitmapBits() ?????



Это сообщение отредактировал(а) KoliaMor - 19.12.2007, 13:21
PM MAIL   Вверх
Earnest
Дата 24.12.2007, 17:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 33
Всего: 183



Цитата(KoliaMor @  19.12.2007,  14:12 Найти цитируемый пост)
желательно монохромный

Это значит однобитовый, т.е. черно-белый, 1 или 0. Куда ты свои яркости денешь?
С таким диапазоном яркостей тебе даже стандартный GrayScale не подойдет.

Цитата(KoliaMor @  19.12.2007,  14:12 Найти цитируемый пост)
Как распределяются RGB компоненты в массиве Pixel при использовании GetBitmapBits() ?????

Формат зависит от цветности битмапа (а они разные бывают). Если битмап 24-битовый, то последовательность пикселов будет GBR (каждый цвет - байт, каждый пиксел 3 байта). Причем размер буфера отнюдь не всегда H*W*3: строка должна быть выровнена на 2 байта (если это простой битмап) и 4 байта - если DibSection. Короче, тонкостей тут много, если хочешь работать с битмапом напрямую, лезь в MSDN.


--------------------
...
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Системное программирование и WinAPI"
Fixin
GremlinProg
xvr
feodorv
  • Большое количество информации и примеров с использованием функций WinAPI можно найти в MSDN
  • Описание сообщений, уведомлений и примеров с использованием компонент WinAPI (BUTTON, EDIT, STATIC, и т.п.), можно найти в MSDN Control Library
  • Непосредственно, перед созданием новой темы, проверьте заголовок и удостоверьтесь, что он отражает суть обсуждения.
  • После заполнения поля "Название темы", обратите внимание на наличие и содержание панели "А здесь смотрели?", возможно Ваш вопрос уже был решен.
  • Приводите часть кода, в которой предположительно находится проблема или ошибка.
  • Если указываете код, пользуйтесь тегами [code][/code], или их кнопочными аналогами.
  • Если вопрос решен, воспользуйтесь соответствующей ссылкой, расположенной напротив названия темы.
  • Один топик - один вопрос!
  • Перед тем как создать тему - прочтите это .

На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы .


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема »


 




[ Время генерации скрипта: 0.0408 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.