使用GDI +并排绘制两个矩形,如果我应用比例因子来获得缩放效果,则在某些比例因子的矩形之间会出现伪像。
我有以下代码来说明问题:
var scale = (float)(numericUpDown1.Value)/100.0f;
var g = e.Graphics;
var b = new SolidBrush(Color.Red);
var rect1 = new Rectangle(10, 40, 100, 100);
var rect2 = new Rectangle(110, 40, 100, 100);
g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
g.PixelOffsetMode = System.Drawing.Drawing2D.PixelOffsetMode.HighQuality;
g.ScaleTransform(scale, scale);
g.FillRectangle(b, rect1);
g.FillRectangle(b, rect2);
使用此代码并设置" numericUpDown1"到100,我得到以下内容:
将比例设置为125,我在矩形之间得到一条线:
几乎任何不是10的倍数的值都可以缩放给出这个问题。看起来接近线,似乎有一些抗锯齿效果。 我无法删除抗锯齿,因为在我的实际情况中,矩形可能是非直线的多边形。
我尝试过很多东西,例如切换PixelOffsetMode,CompositingQuality,Antialiasing,但没有任何效果。我的目标是获得与MS PowerPoint相同质量水平的东西。