我在使用gdi +在画布上旋转图像时出现问题,我使用下面的代码,但是我发现边缘有别名。
myPathMatrix.Rotate(GetDCAngle(), MatrixOrderAppend);
myPathMatrix.Translate(
GetDCX(),
GetDCY(),
MatrixOrderAppend);
canvas->SetTransform(&myPathMatrix);
canvas->Draw(XXX);
我使用以下代码删除了别名,但失败了。
canvas->SetInterpolationMode(InterpolationMode::InterpolationModeHighQualityBicubic);
canvas->SetSmoothingMode(SmoothingModeAntiAlias);
如何删除旋转图像边缘的别名。
非常感谢!
答案 0 :(得分:0)
自从我使用GDI +以来已经有一段时间了,但我认为在旋转时没有有效的选项去除边缘周围的抗锯齿。原因基本上是像素是方形的。要将图像旋转90度以上的数量,您需要使用某种插值来估计之前没有真正像素的像素颜色。
因此,如果库中没有任何内容可以专门去除边缘处的抗锯齿,那么您是否考虑过沿着边框绘制背景颜色的硬线?在没有任何抗锯齿的情况下绘制这些线应该更容易。