Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Загрузка BMP, в целочисленный(!) массив 
:(
    Опции темы
kevor13
Дата 25.1.2009, 00:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Итак перелопатив изрядную часть инета я так и  не понял как выполнить на мой взгляд не очень сложную задачу 
На входе: Изображение BMP 24 
на выходе: Массив состоящий из int 

Большинство мануалов на эту тему загружают BMP в char (???)

я был очень благодарен хотя бы описанию как это сделать.. 

PS Здача поставлена для обработки изображения - потом будут применятся фильтры. Может быть Целочисленный массив не лучший выбор? 

PSSЕсли тема уже была удалите и забудьте о ней ) 
PM MAIL   Вверх
SIRIUStar
  Дата 25.1.2009, 00:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 71
Регистрация: 20.7.2007
Где: Одинцово

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



PS Здача поставлена для обработки изображения - потом будут применятся фильтры. Может быть Целочисленный массив не лучший выбор? 

Почему же? думаю что выбор как раз удачный) 

думаю что тебе нужно это

typedef struct tagBITMAP {  /* bm */
   int bmType;
   int bmWidth;
   int bmHeight;
   int bmWidthBytes;
   BYTE bmPlanes;
   BYTE bmBitsPixel;
   LPVOID bmBits;
} BITMAP;

поле bmBits содержит указатель на массив растра.

ЗЫ там чказатель на массив байтов(unsigned char).. но ты можешь выцепить от туда инты, нада прыгать через 4 байта по нему))

bmBits
Points to the location of the bit values for the bitmap. The bmBits member must be a long pointer to an array of 1-byte values. 


Это сообщение отредактировал(а) SIRIUStar - 25.1.2009, 00:29
PM MAIL WWW ICQ   Вверх
Alexeis
Дата 25.1.2009, 00:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

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



Цитата(kevor13 @  24.1.2009,  23:12 Найти цитируемый пост)
на выходе: Массив состоящий из int 

А как собсно с ним работать? 24 бита это 3 байта, int 4 байта. Используя char можно адресовать каждый цвет пикселя, а с интами чего делать? Для интов нужен формат 32 бита на цвет, тогда каждому int у будет соответствовать пиксель. 


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
kevor13
Дата 25.1.2009, 00:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



то есть работая с чарами какс интами? я просто хочу получить привычный вид от 0 до 255) 
PM MAIL   Вверх
mes
Дата 25.1.2009, 00:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


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

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



Цитата(kevor13 @  24.1.2009,  23:38 Найти цитируемый пост)
хочу получить привычный вид от 0 до 255)  

позвольте узнать, а где у Вас с чарами такое не получается ?


--------------------
PM MAIL WWW   Вверх
kevor13
Дата 25.1.2009, 00:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



все - вопрос снят) все спасибо. 
PM MAIL   Вверх
SIRIUStar
Дата 25.1.2009, 01:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 71
Регистрация: 20.7.2007
Где: Одинцово

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



Цвет всегда кодируется интом. 24 бита это RGB еще 8 это альфо канал. Обычно bmp его не использует. Но есть и 32 разрядные форматы bmp. поэтому по массиву чаров нада прыгать интом. 
PM MAIL WWW ICQ   Вверх
GoldFinch
Дата 25.1.2009, 01:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Завсегдатай
Сообщений: 2141
Регистрация: 30.11.2008

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



SIRIUStar, 24разряда это 24 а не 32, читай про .bmp формат и не морочь людям головы
PM MAIL ICQ   Вверх
inside_pointer
Дата 25.1.2009, 01:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



читать в трёхбайтовый массив типа unsigned char, а сохранять в unsigned long int, где старший байт == 0 (unsigned чтобы не случилось никаких преобразований потом, когда будешь юзать)
PM MAIL   Вверх
Dem_max
Дата 25.1.2009, 06:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1780
Регистрация: 12.4.2007

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



у 32 разрядного bmp выравнивание данных по 4


--------------------
Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte")
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

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


 




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


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

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