Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Проблема с масштабированием BMP

321
23 ноября 2001 года
Doomych
124 / / 20.01.2000
Проблема в следующем: вывожу в клиентское окно BMP-картинку (Truecolor, 24 bit, размер - 1024х960), которую читаю с диска. При этом картинка масштабируется:

void CXxxView::OnDraw(CDC* pDC)
{
...
pDC->StretchBlt(250, 20, 1024 / 2, 960 / 2, & dcTemp, 0, 0, bm.bmWidth, bm.bmHeight, SRCCOPY);
...
}

Происходит следующее: если картинка выводится в масштабе, близком к 1:1, все OK. Но при заметном ее уменьшении качество изображения ухудшается. При масштабе 1:2 это уже явно не Truecolor, а цветов так восемь, причем изображение темнеет. Дальше - хуже: 1:16 - почти одна чернота.
Объясните, в чем причина и как с этим бороться!

Спасибо всем, кто ответит!
409
25 ноября 2001 года
Ramzes
163 / / 20.09.2000
Эта функция работает на растяжение неплохо.
Вообще эта функция корявая, на скорую руку сделанная. Сделай её сам, высчитывай фильтрацию, антиалиастинг...
Аноним
А слабо пример написать?
321
26 ноября 2001 года
Doomych
124 / / 20.01.2000
Мужики, отбой!
На выходных во всем разобрался: все оказалось проще: в строке
HBITMAP hBitmap = (HBITMAP)::LoadImage(AfxGetInstanceHandle(), m_sFileName, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE | LR_CREATEDIBSECTION);
все портил стиль LR_CREATEDIBSECTION.
Всем спасибо!
Аноним
А если я картинку беру не с диска, а, скажем, из Clipboard'a, то что мне делать, как мне быть? Может кто подскажет!?
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог