c# - 如何在 WinForms、GDI+ 中绘制和填充像素完美的对称椭圆?

标签 c# winforms gdi+

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

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

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

Ellipses not symmetric at all sizes

绘制代码:

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

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

有人知道这个的解决方案吗?

最佳答案

试试看,够不够完美? :)

e.Graphics.InterpolationMode = InterpolationMode.Bilinear;
e.Graphics.PixelOffsetMode = PixelOffsetMode.Half;
e.Graphics.SmoothingMode = SmoothingMode.None;
e.Graphics.FillEllipse(Brushes.Black, rect);

关于c# - 如何在 WinForms、GDI+ 中绘制和填充像素完美的对称椭圆?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14583105/

相关文章:

c# - 简单的类实例化在 C# 中会失败吗?

c# - 我应该选择什么数据库?

windows - 如何获得 GDI+ 路径的简单 "block"轮廓?

c# - 在 C# 中获取任何扩展文件属性

c# - 为什么 Exception 是一个类,而不是一个结构?

c# - DropDownListFor 回调或 if 语句

c# - 在设计器中查看表单时出现错误 - 我该如何避免这种情况?

c# - wpf 中 OnPaintBackground 的替代方案。

c# - 按一定百分比偏向或远离色调

c++ - 如何使用 GDI+ 绘制具有填充颜色的(贝塞尔曲线)路径?