GDI

赵剑宇老师

*有两种建立Graphics的方法

  1. Graphics g = this.CreateGraphics() 用Forms本身的方法建立
  2. Graphics g = Graphics.FromImage(Image image) 从图形建立

//画线的需求:
需要一个画直线的对象 画笔 画笔有颜色 一张纸 两个点
//通过窗体对象的方法来创建GDI对象
Graphics g = this.CreateGraphics(); //画直线的对象
//创建一个画笔对象
Pen p = new Pen(Color.Black); //画笔 画笔有颜色
//创建两个点
Point p1 = new Point(30,60);
Point p2 = new Point(200,250);
//画直线
g.DrawLine(p,p1,p2);

画一个矩形

先创建一个矩形:
Rectangle rec = new Rectangle(new Point(250,250),new Size(150,180));
g.DrawRectangle(new Pen(Color.Red),rec);
//给矩形填充颜色
g.FillRectangle(Brushes.Yellow,rec);

验证码

//设计一个验证码图

Bitmap bmp = new Bitmap(150, 50);
//创建GDI对象
Graphics g = Graphics.FromImage(bmp);

Random random = new Random();
//声明5种不同类型的字体存在数组当中
string[] fonts = { "微软雅黑", "宋体", "隶书", "华文楷体", "华文琥珀" };
//声明5种不同类型的颜色存到数组当中
Color[] color = { Color.Red, Color.Yellow, Color.Blue, Color.Pink, Color.Purple };
string str = "";

for (int i = 0; i < 5; i++)
{
	int n = random.Next(0, 10);
	str += n.ToString();
}

for (int i = 0; i < 5; i++)
{
	Point p = new Point(i * 20, 0);
	//g.DrawString(str[i].ToString(),new Font(fonts[i],20,FontStyle.Bold),new SolidBrush(color[i]),p);
}

//开始在图片上画线
for (int i = 0; i < 20; i++)
{
	Point p1 = new Point(random.Next(0, bmp.Width), random.Next(0, bmp.Height));
	Point p2 = new Point(random.Next(0, bmp.Width), random.Next(0, bmp.Height));
	g.DrawLine(new Pen(Color.Black), p1, p2);
}


//在图片上放像素
for (int i = 0; i < 5000; i++)
{
	Point p = new Point(random.Next(0, bmp.Width), random.Next(0, bmp.Height));
	bmp.SetPixel(p.X, p.Y, Color.Pink);
}

pictureBox1.Image = bmp;

posted on 2022-05-25 10:10  manber  阅读(325)  评论(0)    收藏  举报

导航