winform wpf,Winform GDI+

 2023-11-18 阅读 20 评论 0

摘要:什么是GDI+ GDI (Graphics Device Interface), 是屬于繪圖方面的 API (Application Programming Interface)。 因為應用程序不能直接控制硬件, 所以當我們要進行繪圖的動作時, 必須透過 GDI 才能完成。 GDI+ (Graphics Device Interface) 是一種繪圖裝置接口, 可將應用

什么是GDI+

GDI (Graphics Device Interface), 是屬于繪圖方面的 API (Application Programming Interface)。

因為應用程序不能直接控制硬件, 所以當我們要進行繪圖的動作時, 必須透過 GDI 才能完成。

GDI+ (Graphics Device Interface) 是一種繪圖裝置接口, 可將應用程序和繪圖硬件分隔, 讓我們能夠編寫與裝置無關的應用程序。它可以讓我們不需注意特定顯示裝置的詳細數

據,便可在屏幕或打印機顯示信息。我們可以呼叫 GDI+ 類別所提供的方法, 然后這些方法會適當地呼叫特定的裝置驅動程序, 而完成繪圖。而且與.NET進行了更好的融合。

winform wpf、坐標系統

在「GDI+」中所采用的坐標系統,與平時人們較常用的坐標系統不同,主要差別在于,一般的二維坐標系,x軸與y軸分別是往右往上遞增(左圖),

而「GDI+」所采用的坐標系,x軸與y軸則分別是往右往下遞增(右圖)

圖形類所在的命名空間:

各個命名空間的主要功能如下:

winform mvc。System.Drawing:提供了對 GDI+ 基本圖形功能的訪問的類;

System.Drawing.Imaging:提供高級 GDI+ 圖像處理功能的類;

System.Drawing.Text:提供高級 GDI+ 排版功能,該命名空間中的類允許用戶創建和使用多種字體的類。

Point 結構體

Point主要有x與y兩個屬性(表示在二維平面中定義點的整數x和y坐標的有序對)。并且可以對它進行“==”、“!=”等比較操作。

Point表示在二維平面中定義點的、x 和 y 坐標的有序對

winform嵌入chrome,構造方法:

?Point pt = new Point(10,10);

?Point pt = new Point(new Size(10,10));

圖形編程中常見的類

Pen 畫筆類

??它主要指定線寬和線的模式。Pen對象繪制具有指定寬度和樣式的直線和曲線。由 Pen 對象繪制的直線可用各種填充模式(包括純色和紋理)填充。

WinForm、填充模式取決于Brush畫刷或用作填充對象的紋理。

創建方法:

??分別可以采用Brush、Color、及Brush、width和Color、width等參數來創建一個畫筆。

?Pen myPen=new Pen(Color.Black, 3); //創建一個3個像素寬的黑色畫筆

畫筆的作用:

??通常一個圖形輪廓(運用DrawXXX()方法)是用畫筆對象來實現的,

vscode gdb,Graphics對象

???? 它采用面向對象的封裝機制,提供將對象(圖形或文本)繪制到設備(如屏幕或打印機)的方法。

這些對象是獨立于Graphics對象的,它們為Graphics類中的圖形方法的參數。從而簡化了圖形編程。

處理圖形包括兩個步驟

1:創建 Graphics 對象。

2:使用 Graphics 對象繪制線條和形狀、呈現文本或顯示與操作圖像。

gdi+window。創建 Graphics 對象的各種方法

1:通過窗體或控件的 Paint 事件中 PaintEventArgs參數來獲取對Graphics 對象的引用。

2:調用某控件或窗體的 CreateGraphics 方法來獲取對 Graphics 對象的引用,該對象表示該控件或窗體的繪圖表面。如果想在已存在的窗體或控件上繪圖,則可使用此方法。

Paint 事件處理程序中的 PaintEventArgs
??在為控件編制 Paint 事件處理程序時,圖形對象作為一個 PaintEventArgs 提供。因此可以獲取對 Paint 事件的 PaintEventArgs 中 Graphics 對象的引用來實現繪圖,步驟:

1:聲明 Graphics 對象。

2:分配變量來引用作為 PaintEventArgs 的一部分傳遞的 Graphics 對象。

visual gdb,3:插入代碼來繪制窗體或控件。

注:理解繪制過程中的坐標問題

CreateGraphics 方法

也可以使用某控件或窗體的 CreateGraphics 方法來獲取對 Graphics 對象的引用,該對象表示該控件或窗體的繪圖表面。

1:用 CreateGraphics 方法創建 Graphics 對象

2:調用要在其上呈現圖形的窗體或控件的 CreateGraphics 方法。
?例如:
?Graphics g;
?g = this.CreateGraphics();?//創建出控件中的Graphics對象

winform webapi?Graphics類常用的畫圖方法

畫點

?DrawLine()畫線,參數為兩個Point對象并且為同一個點時。

?注:理解在窗體或控件中 的坐標系問題

畫線

DrawLine()畫線---兩個Point對象

winform datagridview。DrawLines()畫線段(Point的數組)

畫文本

DrawString()畫文本

畫矩形(填充矩形)

DrawRectangle()畫矩形

FillRectangle()填充矩形

winform ui。圖形編程中常用的幾個結構

Rectangle和RectangleF結構體

??主要有左上角的x與y及width、height等四個屬性(存儲矩形區域的位置和大小)。并且可以對它進行“==”、“!=”等比較操作。而RectangleF結構體代表浮點數類型。

主要的屬性如下:

Bottom:矩形底部的縱座標

Top:矩形頂部的縱座標

wpf winform、Left:矩形坐部的橫座標

Right:矩形右部的橫座

Height:矩形的高度

Width:矩形的寬度

Size:矩形的尺寸

IsEmpty:矩形是否為空(高度和寬度是否都是0)

X:矩形左上角的橫座標

Y:矩形左上角的縱座標

Size和SizeF結構體:

??主要有width、height兩個屬性(用寬度和高度的有序對表示矩形區域的大小)。SizeF結構體代表浮點數類型。并且可以實現Size到Point、Size到SizeF的轉換。

構造函數:

?Size sz1 = new Size(10,10)

屬性:

?Width: 表示寬度值

?Height:表示高度值

Brush畫刷類

??作用:它主要指定填充區域的顏色和樣式, Brush對象是一個抽象類。閉合的圖形(例如,矩形或橢圓)由輪廓和內部組成,輪廓用畫筆繪制,內部用畫刷填充。

畫刷的風格:

實心畫刷(SolidBrush,用單一顏色填充)

畫刷的創建實例:

創建一個實心畫刷SolidBrush畫刷

?如:創建一個黑色的畫刷

?SolidBrush drawBrush=newSolidBrush(Color.Black);

?下面的示例用純紅色填充橢圓:

?SolidBrush mySolidBrush = new SolidBrush(Color.Red);

?myGraphics.FillEllipse(mySolidBrush, 0, 0, 60, 40);

Demo:生產簡單驗證碼

1:通過Random生成隨機數或字符及驗證碼

2:通過驗證碼內容長度生成指定大小的圖片

3:獲取生成圖片的Graphics對象

4:定義驗證碼字體格式

5:通過指定字體將驗證碼繪制到圖片

6:向圖片上添加背景噪音線

7:添加前景噪音點?

 1             Random r = new Random();
 2             string str = null;
 3             for (int i = 0; i < 5; i++)
 4             {
 5                 int rNumber = r.Next(0, 10);
 6                 str += rNumber;
 7             }
 8             //  MessageBox.Show(str);
 9             //創建GDI對象
10             Bitmap bmp = new Bitmap(150, 40);
11             Graphics g = Graphics.FromImage(bmp);
12 
13             for (int i = 0; i < 5; i++)
14             {
15                 Point p = new Point(i * 20, 0);
16                 string[] fonts = { "微軟雅黑", "宋體", "黑體", "隸書", "仿宋" };
17                 Color[] colors = { Color.Yellow, Color.Blue, Color.Black, Color.Red, Color.Green };
18                 g.DrawString(str[i].ToString(), new Font(fonts[r.Next(0, 5)], 20, FontStyle.Bold), new SolidBrush(colors[r.Next(0, 5)]), p);
19             }
20 
21             for (int i = 0; i < 20; i++)
22             {
23                 Point p1 = new Point(r.Next(0, bmp.Width), r.Next(0, bmp.Height));
24                 Point p2 = new Point(r.Next(0, bmp.Width), r.Next(0, bmp.Height));
25                 g.DrawLine(new Pen(Brushes.Green), p1, p2);
26             }
27 
28             for (int i = 0; i < 500; i++)
29             {
30                 Point p = new Point(r.Next(0, bmp.Width), r.Next(0, bmp.Height));
31                 bmp.SetPixel(p.X, p.Y, Color.Black);
32             }
33 
34 
35             //將圖片鑲嵌到PictureBox中
36             pictureBox1.Image = bmp;
Winform GDI 驗證碼

開發環境:Visual Studio 2010

源代碼: 鏈接:http://pan.baidu.com/s/1jGgzXJo? 密碼:5d6a

轉載于:https://www.cnblogs.com/DrHao/p/4989499.html

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/2/174879.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息