8

我需要绘制(并填充)一个像素完美、非反锯齿的对称椭圆。

我尝试了 和 的各种组合,InterpolationMode但我尝试过的组合都没有确保椭圆在所有尺寸下都保持对称和非反锯齿。SmoothingModePixelOffsetMode

不幸的是,关于该主题的 MSDN 文档不是很准确。

椭圆在所有尺寸上都不对称

用于绘图的代码:

g.InterpolationMode = InterpolationMode.NearestNeighbor;
g.SmoothingMode = SmoothingMode.None;
g.PixelOffsetMode = PixelOffsetMode.None;                                
g.DrawEllipse(new Pen(colorPalette.SelectedColor), rect);

填充非反锯齿椭圆也是如此。

有谁知道这个的解决方案?

4

2 回答 2

2

试试这个,够完美吗?:)

e.Graphics.InterpolationMode = InterpolationMode.Bilinear;
e.Graphics.PixelOffsetMode = PixelOffsetMode.Half;
e.Graphics.SmoothingMode = SmoothingMode.None;
e.Graphics.FillEllipse(Brushes.Black, rect);
于 2013-01-29T13:24:01.863 回答
0

如果您没有达到视网膜显示的完美圆圈,根据 Leff 的回答,将平滑模式更改为抗锯齿或高质量将修复像素化圆圈。

e.Graphics.SmoothingMode = SmoothingMode.AntiAlias;
于 2018-11-23T02:28:22.547 回答