Я масштабирую изображение с помощью StretchBlt()
.StretchBlt и фильтрация альфа-каналов
http://img684.imageshack.us/img684/2152/stretchblt.png
Как вы можете видеть, в настоящее время он выглядит как я должен выбирать между качеством фильтрации и прозрачности. Есть ли способ получить оба? Это единственная операция с изображениями, которую мне нужно выполнить, поэтому я предпочел бы избегать дополнительных библиотек.
Мой код:
HDC srcDC = CreateCompatibleDC(NULL);
SelectObject(srcDC, *phbmp);
HDC destDC = CreateCompatibleDC(srcDC);
HBITMAP NewBMP = CreateCompatibleBitmap(srcDC,NewWidth,NewHeight);
SelectObject(destDC,NewBMP);
SetStretchBltMode(destDC,HALFTONE);
SetBrushOrgEx(destDC,0,0,NULL);
if (StretchBlt(destDC,0,0,NewWidth,NewHeight,srcDC,0,0,width,height,SRCCOPY) == TRUE)
{
DeleteObject(*phbmp);
*phbmp = NewBMP;
hr = S_OK;
}
else
DeleteObject(NewBMP);
DeleteDC(srcDC);
DeleteDC(destDC);
Вы отметили GDI +, но не используете его отличные фильтры для изменения размера? Позор. –
И они были бы? – Artfunkel
Ганс рассказал вам, что вы называете, теперь вы можете выполнять поиск в Интернете. –