当使用比例因子并排绘制矩形时,GDI +显示伪影

时间:2013-10-18 20:35:59

标签: c# winforms gdi+

使用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,我得到以下内容:

No scaling

将比例设置为125,我在矩形之间得到一条线:

Scaling 125%

几乎任何不是10的倍数的值都可以缩放给出这个问题。看起来接近线,似乎有一些抗锯齿效果。 我无法删除抗锯齿,因为在我的实际情况中,矩形可能是非直线的多边形。

Zoom on the artifact

我尝试过很多东西,例如切换PixelOffsetMode,CompositingQuality,Antialiasing,但没有任何效果。我的目标是获得与MS PowerPoint相同质量水平的东西。

0 个答案:

没有答案