![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
kevor13 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 19.2.2008 Репутация: нет Всего: нет |
Итак перелопатив изрядную часть инета я так и не понял как выполнить на мой взгляд не очень сложную задачу
На входе: Изображение BMP 24 на выходе: Массив состоящий из int Большинство мануалов на эту тему загружают BMP в char (???) я был очень благодарен хотя бы описанию как это сделать.. PS Здача поставлена для обработки изображения - потом будут применятся фильтры. Может быть Целочисленный массив не лучший выбор? PSSЕсли тема уже была удалите и забудьте о ней ) |
|||
|
||||
SIRIUStar |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 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 |
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 12 Всего: 459 |
А как собсно с ним работать? 24 бита это 3 байта, int 4 байта. Используя char можно адресовать каждый цвет пикселя, а с интами чего делать? Для интов нужен формат 32 бита на цвет, тогда каждому int у будет соответствовать пиксель. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
kevor13 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 19.2.2008 Репутация: нет Всего: нет |
то есть работая с чарами какс интами? я просто хочу получить привычный вид от 0 до 255)
|
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
позвольте узнать, а где у Вас с чарами такое не получается ? |
|||
|
||||
kevor13 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 19.2.2008 Репутация: нет Всего: нет |
все - вопрос снят) все спасибо.
|
|||
|
||||
SIRIUStar |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 71 Регистрация: 20.7.2007 Где: Одинцово Репутация: нет Всего: нет |
Цвет всегда кодируется интом. 24 бита это RGB еще 8 это альфо канал. Обычно bmp его не использует. Но есть и 32 разрядные форматы bmp. поэтому по массиву чаров нада прыгать интом.
|
|||
|
||||
GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 15 Всего: 26 |
SIRIUStar, 24разряда это 24 а не 32, читай про .bmp формат и не морочь людям головы
|
|||
|
||||
inside_pointer |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 344 Регистрация: 9.3.2008 Репутация: 5 Всего: 12 |
читать в трёхбайтовый массив типа unsigned char, а сохранять в unsigned long int, где старший байт == 0 (unsigned чтобы не случилось никаких преобразований потом, когда будешь юзать)
|
|||
|
||||
Dem_max |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1780 Регистрация: 12.4.2007 Репутация: 4 Всего: 39 |
у 32 разрядного bmp выравнивание данных по 4
-------------------- Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte") |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |