GDI
赵剑宇老师
*有两种建立Graphics的方法
- Graphics g = this.CreateGraphics() 用Forms本身的方法建立
- 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;
 
                    
                     
                    
                 
                    
                 
                
            
         
 
         浙公网安备 33010602011771号
浙公网安备 33010602011771号