在位图上绘制椭圆并返回带有椭圆的位图

Posted

技术标签:

【中文标题】在位图上绘制椭圆并返回带有椭圆的位图【英文标题】:DrawEllipse on Bitmap and return the Bitmap with the ellipse on it 【发布时间】:2021-11-20 14:51:04 【问题描述】:

我正在使用图形来绘制椭圆,并且我想返回一个包含该椭圆的位图。 我的代码有意义吗?

    private static Graphics ChipCanvas = Graphics.FromImage(new Bitmap(60, 60));
    
    public override Bitmap GetImage()
            
              
                if (Color == PieceColors.Black)
                    ChipCanvas.FillEllipse(Brushes.Black, 0, 0, 5, 5);
                else
                    ChipCanvas.FillEllipse(Brushes.White, 0, 0, 5, 5);
    
                

                return new Bitmap(60, 60, ChipCanvas);
            

【问题讨论】:

【参考方案1】:

不,它没有。图形对象不是持久画布。他们画画然后忘记。位图就是画布。

试试这样:

private Bitmap bitmap = new Bitmap(60, 60);

public Bitmap GetImage()

  using (var g = Graphics.FromImage(bitmap))
  
    g.SmoothingMode = SmoothingMode.AntiAlias;
    g.FillEllipse(Brushes.Black, 0, 0, 5, 5);
  
  return bitmap;

【讨论】:

以上是关于在位图上绘制椭圆并返回带有椭圆的位图的主要内容,如果未能解决你的问题,请参考以下文章

如何在位图上绘制粗体文本?

使用Python,OpenCV对图像进行亚像素点检测,并拟合椭圆进行绘制

在位图上绘制文本失败

c ++在位图上绘制图像并保存

在位图上制作可调整的裁剪矩形

CAShapeLayer 动画路径毛刺/闪烁(从椭圆到矩形并返回)