午夜视频在线网站,日韩视频精品在线,中文字幕精品一区二区三区在线,在线播放精品,1024你懂我懂的旧版人,欧美日韩一级黄色片,一区二区三区在线观看视频

分享

GDI 圖形圖像

 goodwangLib 2018-01-30


1、Graphics

封裝一個 GDI+ 繪圖圖面。 此類不能被繼承。

創(chuàng)建Graphics對象有3種方法:

  • (1)在窗體或控件的Paint事件中創(chuàng)建,將其作為PaintEventArgs的一部分。
在Paint事件中創(chuàng)建Graphics對象,代碼如下:

private void Form1_Paint(object sender,PaintEventArgs e){ Graphics g=e.Graphics; //創(chuàng)建Graphics對象}

  • (2)調(diào)用控件或窗體的CreateGraphics方法以獲取對Graphics對象的引用,該對象表示控件或窗體的繪圖畫面。
在窗體的Load事件中,通過CreateGraphics方法創(chuàng)建Graphics對象,代碼如下:

private void Form1_Load(object sender,EventArgs e){ Graphics g; g=this.CreateGraphics(); //使用CreateGraphics方法創(chuàng)建Graphics對象}

  • (3)由從Image繼承的任何對象創(chuàng)建Graphics對象。
在窗體的Load事件中,通過FromImage方法創(chuàng)建Graphics對象,代碼如下:

private void Form1_Load(object sender,EventArgs e){ Bitmap mbit=new Bitmap(@'C:\ls.bmp'); //實例化Bitmap類 Graphics g=Graphics.FromImage(mbit); //通過FromImage方法創(chuàng)建Graphics對象}

Graphics類屬性:

Graphics類方法:

  • DrawLine(Pen,?Point,?Point):繪制一條連接兩個 Point 結(jié)構(gòu)的線。
  • DrawLine(Pen,?Single,?Single,?Single,?Single) 繪制一條連接由坐標(biāo)對指定的兩個點的線條。
  • DrawRectangle(Pen,?Single,?Single,?Single,?Single)繪制由坐標(biāo)對、寬度和高度指定的矩形。
  • DrawEllipse(Pen,?Single,?Single,?Single,?Single)繪制一個由邊框(該邊框由一對坐標(biāo)、高度和寬度指定)定義的橢圓。
  • DrawArc(Pen,?Single,?Single,?Single,?Single,?Single,?Single)繪制一段弧線,它表示由一對坐標(biāo)、寬度和高度指定的橢圓部分。
  • DrawPie(Pen,?Single,?Single,?Single,?Single,?Single,?Single)繪制一個扇形,該形狀由一個坐標(biāo)對、寬度、高度以及兩條射線所指定的橢圓定義。
  • DrawPolygon(Pen,?Point[]) 繪制由一組 Point 結(jié)構(gòu)定義的多邊形。
  • FillRectangle(Brush,?Single,?Single,?Single,?Single)填充由一對坐標(biāo)、一個寬度和一個高度指定的矩形的內(nèi)部。
  • FillPie(Brush,?Single,?Single,?Single,?Single,?Single,?Single)填充由一對坐標(biāo)、一個寬度、一個高度以及兩條射線指定的橢圓所定義的扇形區(qū)的內(nèi)部。
2、Pen類

定義用于繪制直線和曲線的對象。 此類不能被繼承。

構(gòu)造函數(shù):

  • Pen(Brush)用指定的 Brush 初始化 Pen 類的新實例。
  • Pen(Color)用指定顏色初始化 Pen 類的新實例。
  • Pen(Brush, Single)使用指定的 Brush 和 Width 初始化 Pen 類的新實例。
  • Pen(Color, Single)用指定的 Color 和 Width 屬性初始化 Pen 類的新實例。

命名空間:  System.Drawing
程序集:  System.Drawing(在 System.Drawing.dll 中)

創(chuàng)建一個Pen對象,使其顏色為藍(lán)色,寬度為2,代碼如下:

Pen mypen=new Pen(Color.Blue,2);

3、Brush類

(1)SolidBrush

定義一種顏色的畫筆。 畫筆用于填充圖形形狀,如矩形、 橢圓、 餅、 多邊形和路徑。 此類不能被繼承。

public sealed class SolidBrush : Brush

構(gòu)造函數(shù):

SolidBrush(Color):初始化新 SolidBrush 指定顏色的對象。
(2)HatchBrush

定義矩形畫筆陰影樣式、 前景顏色與背景色。 此類不能被繼承。
命名空間:   System.Drawing.Drawing2D
程序集:  System.Drawing(位于 System.Drawing.dll)

public sealed class HatchBrush : Brush

構(gòu)造函數(shù):

  • HatchBrush(HatchStyle,?Color)新實例初始化 HatchBrush 類與指定 HatchStyle 枚舉和前景色。
  • HatchBrush(HatchStyle,?Color,?Color)新實例初始化 HatchBrush 類與指定 HatchStyle 枚舉、 前景色和背景色。

4、實例1---通過Brush對象將繪制的矩形填充為紅色。

(1)新建一個C#窗體項目,添加一個按鈕“繪制并填充”。


(2)代碼:

using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;namespace 測試?yán)L圖{    public partial class Form1 : Form    {        public Form1()        {            InitializeComponent();        }        private void button1_Click(object sender, EventArgs e)        {            Graphics ghs = this.CreateGraphics();   //創(chuàng)建Graphics對象            Brush mybs = new SolidBrush(Color.Red); //使用SolidBrush類創(chuàng)建一個Brush對象            Rectangle rt = new Rectangle(10,10,90,90);         //繪制一個矩形            ghs.FillRectangle(mybs, rt);                 //用Brush填充Rectangle        }    }}

運行結(jié)果:



5、實例2---繪制直線和矩形

(1)新建一個C#窗體項目,添加3個按鈕“水平直線”“垂直直線”和“繪制矩形”。


(2)代碼:

using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;namespace 測試?yán)L圖{    public partial class Form1 : Form    {        public Form1()        {            InitializeComponent();        }        private void button1_Click(object sender, EventArgs e)  //繪制水平直線        {            Pen mypen = new Pen(Color.Blue, 3);     //實例化Pen類            Point pt1 = new Point(10,50);           //實例化Point類            Point pt2 = new Point(60, 50);          //實例化Point類            Graphics g = this.CreateGraphics();     //實例化Graphics類            g.DrawLine(mypen,pt1,pt2);              //調(diào)用DrawLine方法繪制直線        }        private void button2_Click(object sender, EventArgs e)  //繪制水平直線        {            Graphics gr = this.CreateGraphics();     //實例化Graphics類            Pen mypen = new Pen(Color.Red, 3);     //實例化Pen類            gr.DrawLine(mypen, 100,30,100,100);    //調(diào)用DrawLine方法繪制直線        }        private void button3_Click(object sender, EventArgs e)  //繪制矩形        {            Graphics gr = this.CreateGraphics();     //實例化Graphics類            Pen mypen = new Pen(Color.Green, 4);     //實例化Pen類            gr.DrawRectangle(mypen, 60, 60, 100, 100);    //調(diào)用DrawRectangle方法繪制矩形        }    }}

運行結(jié)果:


    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多