![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Nastya |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 27.3.2002 Где: Мариуполь Репутация: 5 Всего: 44 |
VC++ 6.0
Программа компилировалась и прекрасно работает в windows 98. Там есть кусочек, где считывается информация из *.bmp через LoadImage и выводится на экран. Все работате Эта же программа, запущенная из Windows Xp или 2000 показывает картинки с гараздо меньшим количеством цветов (этак 256 вместо приличного труеколора). Почему? Причем, картинка загруженная из ресурсов и отображенная также работает без проблем. -------------------- Что бы понять рекурсию, надо понять рекурсию "Профессионал - это человек сделавший все возможные ошибки в очень узкой области". Н.Бор |
|||
|
||||
| Gorbatovsky |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 66 Регистрация: 4.9.2003 Где: Киев Репутация: нет Всего: нет |
Я думаю, что это функция LoadImage или та, которая выводит на экран не корректно работают с цветом.
|
|||
|
||||
| Nastya |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 27.3.2002 Где: Мариуполь Репутация: 5 Всего: 44 |
Я подозреваю, что это все-таки StrechBlt, может кто подскажет чем ее можно заменить
-------------------- Что бы понять рекурсию, надо понять рекурсию "Профессионал - это человек сделавший все возможные ошибки в очень узкой области". Н.Бор |
|||
|
||||
| Baa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2639 Регистрация: 12.4.2002 Где: Москва Репутация: 8 Всего: 12 |
А обязательно масштабирование картинки? Попробуй переносить другими функциями, типа BitBlt и т.д.
Хотя, как мне кажется, проблема не в этом... -------------------- "Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande |
|||
|
||||
| Nastya |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 27.3.2002 Где: Мариуполь Репутация: 5 Всего: 44 |
Да, маштабирование обязательно.
Если не в этом, то в чем? -------------------- Что бы понять рекурсию, надо понять рекурсию "Профессионал - это человек сделавший все возможные ошибки в очень узкой области". Н.Бор |
|||
|
||||
| DENNN |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3878 Регистрация: 27.3.2002 Где: Москва Репутация: 1 Всего: 43 |
Возможно при отображении используестя режим не trueColor, а индексированные цвета?
|
|||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 25 Всего: 232 |
Тогда можно пробовать получить текущую палитру с контекста, и по ней определять, индексированные цвета или нет. ИМХО, лучше было бы использовать COM-объект IPicture (есть во всех виндах, и прекрасно работает, используется самой ОС для открытия, отображения и сохранения всяких BMP, GIF, JPEG'ов; отлично документирован в MSDN). -------------------- ![]() |
|||
|
||||
| Nastya |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 27.3.2002 Где: Мариуполь Репутация: 5 Всего: 44 |
Дело точно в StrechBlt, когда я вызываю эту функцию, но при этом картинку не растягиваю, а отображаю 1:1 все нормально (следовательно файл прочитался нормально и HBITMAP хранит все цвета как положено), а при растягивании или сжатии происходит искажение.
Опять вопрос почему, и как с этим пборотся -------------------- Что бы понять рекурсию, надо понять рекурсию "Профессионал - это человек сделавший все возможные ошибки в очень узкой области". Н.Бор |
|||
|
||||
| DENNN |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3878 Регистрация: 27.3.2002 Где: Москва Репутация: 1 Всего: 43 |
Тогда приведи последний параметр StretchBlt (DWORD dwRop) - видимо нужно заменить его на другой, чтоб указать режим вычисления получающегося цвета. Кроме того посмотри справку по функциям SetStretchBltMode, MaskBlt
и команду MAKEROP4 - думаю лишним не будет. |
|||
|
||||
| Nastya |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 27.3.2002 Где: Мариуполь Репутация: 5 Всего: 44 |
Все разабралась,
SetStrechBltMode(HALFTONE); Спасибо DENNN, но я уже добралась до этого сама, кстати при таком режиме скорость отображения падает, так что прийдется еще помудрить над этим -------------------- Что бы понять рекурсию, надо понять рекурсию "Профессионал - это человек сделавший все возможные ошибки в очень узкой области". Н.Бор |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |