如何用c#的位图创建圆

本文关键字:创建 位图 何用 | 更新日期: 2023-09-27 18:15:11

如何用位图绘制圆。也就是说,我需要得到圆的图像,用它来画一些东西

如何用c#的位图创建圆

使用ColorTranslator.FromHtml

这将给你相应的System.Drawing.Color:

using (Bitmap btm = new Bitmap(25, 30))
{
   using (Graphics grf = Graphics.FromImage(btm))
   {
      using (Brush brsh = new SolidBrush(ColorTranslator.FromHtml("#ff00ffff")))
      {
         grf.FillEllipse(brsh, 0, 0, 19, 19);
      }
   }
}

或参考代码:

Bitmap bmp = new Bitmap(pictureBox1.Width, pictureBox1.Height);
Graphics g = Graphics.FromImage(bmp);
Pen blackPen = new Pen(Color.Black);
int x = pictureBox1.Width/4;
int y = pictureBox1.Height/4;
int width = pictureBox1.Width / 2;
int height = pictureBox1.Height / 2;
int diameter = Math.Min(width, height);
g.DrawEllipse(blackPen, x, y, diameter, diameter);
pictureBox1.Image = bmp;
If the PictureBox already contains a bitmap, replace the first and second lines with:
Graphics g = Graphics.FromImage(pictureBox1.Image);

参考链接:

http://www.c-sharpcorner.com/Forums/Thread/30986/

Bitmap b = new Bitmap(261, 266);// height & width of picturebox
int xo = 50, yo = 50;// center of circle
double r, rr;
r = 20;
rr = Math.Pow(r, 2);          
        for (int i = xo - (int)r; i <= xo + r; i++)
            for (int j = yo - (int)r; j <= yo + r; j++)
                if (Math.Abs(Math.Pow(i - xo, 2) + Math.Pow(j - yo, 2) - rr) <= r)
                    b.SetPixel(i, j, Color.Black);
pictureBox1.Image = b;