![]() |
|
|
![]()
|
|
| Competitor |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 440 Регистрация: 23.3.2005 Где: Tula Репутация: нет Всего: -1 |
Привет всем,
Хочу сериализовать CBitmap на диск, и потом загрузить обратно. Делаю так:
Объект сериализуется на диск, потом загружается, но отрисовывается черно-белым и перевернутым. Пробовал брать высоту с минусом, все-равно перевернутый. Главное не понятно, почему черно-белым получается. Подскажите плиз, в чем ошибка? |
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
1) А дебагер тебе зачем? Сравни данные ДО и ПОСЛЕ.
2) Зачем велосипед изобратать? Есть формат bmp, вот и читай про него (BITMAPINFOHEADER и т.д.). Там, кстати, еще таблица цветов есть, тоже читать\писать надо. -------------------- ... |
|||
|
||||
| Competitor |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 440 Регистрация: 23.3.2005 Где: Tula Репутация: нет Всего: -1 |
Все поля структуры BITMAP до и после одинаковы.
есть задача хранить картинки в зашифрованном виде, потому то и нужно хранить бмпшку так, чтобы ниоткуда больше она не могла быть прочитана. Если бы можно было получать массив байт из CBitmap, а потом создавать CBitmap из массива байт, это было бы идеальным решением, но похоже это не так просто, и приходится сначала сохранять все поля структуры BITMAP в файл, а потом считывать, но даже в этом случае возникают проблемы. из объекта CBitmap я могу получить структуру BITMAP, все поля котороя и сохраняю, а как получить таблицу цветов? |
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Если у тебя DDB-битмап (device-dependent), то таблицу цветов нужно брать из контекста. Это если файл картинка палитровая.
Действительно, какие-то тонкости с битмапом есть, но из твоего кода сложно понять, какаой цветности картинка, да и вообще где ты память выделяешь для GetBitmap... Вообще, имеет смысл использовать dibSection - т.е. device-indipendent dib. ДЛя того и придуман, чтобы не паритmcz с цветами. В коде твоем ковыряться подробно не могу; вот посмотри рабочий код, который читает-пишет bmp. Делает это он в стандартном формате, но это не важно. Там есть и создание GDI-объекта. Компилироваться он, конечно, не будет, т.к. выдран из библиотеки, но суть, я думаю, будет понятна. Присоединённый файл ( Кол-во скачиваний: 9 )
Bmp.rar 3,50 Kb-------------------- ... |
|||
|
||||
| Competitor |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 440 Регистрация: 23.3.2005 Где: Tula Репутация: нет Всего: -1 |
Earnest, благодарю за код
получилось так:
|
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |