2009-04-13 40 views
0

我在gdi +上畫布上的圖像出現問題,我正在使用下面的代碼,但是我發現在邊上有別名。如何在gdi +中旋轉圖像時避免別名?

myPathMatrix.Rotate(GetDCAngle(), MatrixOrderAppend); 
myPathMatrix.Translate(
GetDCX(), 
GetDCY(), 
MatrixOrderAppend); 
canvas->SetTransform(&myPathMatrix); 
canvas->Draw(XXX); 

我使用下面的代碼來刪除別名,但失敗。

canvas->SetInterpolationMode(InterpolationMode::InterpolationModeHighQualityBicubic); 
canvas->SetSmoothingMode(SmoothingModeAntiAlias); 

如何刪除旋轉圖像邊緣的別名。

非常感謝!

回答

0

自從我使用GDI +以來已經有一段時間了,但我認爲在旋轉時沒有有效的方法去除邊緣周圍的抗鋸齒。原因基本上是像素是方形的。要將圖像旋轉90度的倍數以外,您需要使用某種插值法來估計以前沒有真正像素的像素顏色。

因此,如果庫中沒有任何東西能夠專門消除邊緣的抗鋸齒效果,您是否考慮過沿邊界繪製背景顏色的強線?在沒有任何反鋸齒的情況下繪製這些線應該會更容易。