3
我使用StretchBlt()
縮放圖像。StretchBlt和過濾alpha通道
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 +,但您沒有使用其優秀的調整大小過濾器?恥辱。 – 2011-01-07 12:30:55