Проблема с масштабированием BMP
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 - почти одна чернота.
Объясните, в чем причина и как с этим бороться!
Спасибо всем, кто ответит!
Вообще эта функция корявая, на скорую руку сделанная. Сделай её сам, высчитывай фильтрацию, антиалиастинг...
А слабо пример написать?
На выходных во всем разобрался: все оказалось проще: в строке
HBITMAP hBitmap = (HBITMAP)::LoadImage(AfxGetInstanceHandle(), m_sFileName, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE | LR_CREATEDIBSECTION);
все портил стиль LR_CREATEDIBSECTION.
Всем спасибо!
А если я картинку беру не с диска, а, скажем, из Clipboard'a, то что мне делать, как мне быть? Может кто подскажет!?