2009-04-13 6 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 도의 배수가 아닌 다른 각도로 회전하려면 실제 픽셀이 없었던 픽셀 색상을 추정하기 위해 일종의 보간법을 사용해야합니다.

그래서 라이브러리에서 가장자리 주변의 안티 앨리어싱을 제거 할 수있는 것이 없으면 테두리를 따라 배경색으로 딱딱한 선을 그릴 생각을 했습니까? 안티 앨리어싱을 사용하지 않고 선을 그려야합니다.