Day17_C#_GDI

01. 主体使用对象

  >> Graphics 

02. 各种绘制

 

 1      void DrawLine()
 2         {
 3             Graphics gp = pnl_1.CreateGraphics();
 4             Pen pen = new Pen(Color.FromName("blue"));
 5             gp.DrawLine(pen, 100, 100, 200, 200);
 6         }
 7 
 8         void DrawRect()
 9         {
10             Graphics gp = pnl_1.CreateGraphics();
11             Pen pen = new Pen(Color.FromName("blue"));
12             pen.DashStyle = System.Drawing.Drawing2D.DashStyle.Dash;
13             gp.DrawRectangle(pen, 100, 100, 150, 150);
14         }
15 
16         void DrawCircle()
17         {
18             Graphics gra = pnl_1.CreateGraphics();
19             gra.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
20             Pen pen = new Pen(Color.Green);//画笔颜色
21             pen.DashStyle = System.Drawing.Drawing2D.DashStyle.DashDot;
22             gra.DrawEllipse(pen, 300, 10, 100, 100);//画椭圆的方法,x坐标、y坐标、宽、高,如果是100,则半径为50
23         }
24 
25         void DrawCircleFilled()
26         {
27             Graphics gra = pnl_1.CreateGraphics();
28             gra.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
29             Brush bush = new SolidBrush(Color.Green);//填充的颜色
30             gra.FillEllipse(bush, 10, 10, 100, 100);//画填充椭圆的方法,x坐标、y坐标、宽、高,如果是100,则半径为50
31         }
32 
33         void DrawTest()
34         {
35             Graphics gra = pnl_1.CreateGraphics();
36             Font myFont = new Font("宋体", 24, FontStyle.Bold);
37             Brush bush = new SolidBrush(Color.Red);//填充的颜色
38             gra.DrawString("测试文本!", myFont, bush, 130, 50);
39         }
40 
41 
42         /// <summary>
43         /// 生成二维码
44         /// </summary>
45         /// <param name="msg">信息</param>
46         /// <param name="version">版本 1 ~ 40</param>
47         /// <param name="pixel">像素点大小</param>
48         /// <param name="icon_path">图标路径</param>
49         /// <param name="icon_size">图标尺寸</param>
50         /// <param name="icon_border">图标边框厚度</param>
51         /// <param name="white_edge">二维码白边</param>
52         /// <returns>位图</returns>
53         ///   imagecode("123456", 2, 5, "", 0, 0, false);//生成二维码
54         public static Bitmap imagecode(string msg, int version, int pixel, string icon_path, int icon_size, int icon_border, bool white_edge)
55         {
56             QRCoder.QRCodeGenerator code_generator = new QRCoder.QRCodeGenerator();
57 
58             QRCoder.QRCodeData code_data = code_generator.CreateQrCode(msg, QRCoder.QRCodeGenerator.ECCLevel.M/* 这里设置容错率的一个级别 */, true, true, QRCoder.QRCodeGenerator.EciMode.Utf8, version);
59 
60             QRCoder.QRCode code = new QRCoder.QRCode(code_data);
61 
62             //Bitmap icon = new Bitmap(icon_path);
63 
64             // Bitmap bmp = code.GetGraphic(pixel, Color.Black, Color.White, icon, icon_size, icon_border, white_edge);
65             //Bitmap bmp = code.GetGraphic(pixel, Color.Black, Color.White, white_edge);
66             Bitmap bmp = code.GetGraphic(pixel, Color.Green, Color.White, white_edge);
67 
68             return bmp;
69 
70         }
71 
72         void DrawCode()
73         {
74             //using System.Drawing;
75             //先创建一个画布,来绘制一个宽长为:300,300的画布。
76             var imagedata = new Bitmap(300, 300);
77             var sourcegra = Graphics.FromImage(imagedata);//存入画布
78             sourcegra.DrawString("品牌", new Font("宋体", 20, FontStyle.Regular), new SolidBrush(Color.Red), 20, 100);//在画布绘制字体
79             var qrImage = imagecode("123456", 2, 5, "", 0, 0, false);//生成二维码
80             sourcegra.DrawImage(qrImage, 100, 100, 100, 100);//绘制二维码到画布
81             //imagedata.Save("D://1.jpeg", System.Drawing.Imaging.ImageFormat.Jpeg);//保存图片到D盘
82             //将图片赋值给PictureBox
83             pic_code.Image = imagedata  ;
84 
85             //直接画图片
86             Graphics gra = pnl_1.CreateGraphics();
87             gra.DrawImage(qrImage, 10, 300, 150, 150);
88         }

 

 

 

 

posted @ 2022-04-26 10:40  耗喜天涯  阅读(16)  评论(0编辑  收藏  举报