如何使用位图c#创建圆圈

时间:2013-05-24 04:45:26

标签: c# bitmap

您好如何使用位图绘制圆圈。也就是说,我需要获取圆圈的图像,用它绘制一些东西。

2 个答案:

答案 0 :(得分:2)

为此目的使用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/

希望它有用。

答案 1 :(得分:1)

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;