c#Gdi畫圖的兩種方式
阿新 • • 發佈:2019-02-02
用Graphics繪圖的兩種方法
在學習C#畫圖的時候非常的蛋疼。其中的一條原因是之前沒有搞過, 其中之二是辦公的環境有點差。這就是我找的2種學習非常蛋疼的原因。雖然是這樣但是學還是要學的。
本篇文章都是在xxx_paint(object sender, PaintEventArg e ) 重繪函式中運作的。
繪圖的兩種自定義 Graphics物件的方法
1: 是用重繪函式自帶的引數來進行畫圖
e.graphics.DrawLine( new Pen(Color.Red,), new Point(0,0), new Point(100,100));
2:先建立畫布, 然後用e.graphics.DrawImage( )的方式,
Bitmap bmp = new Bitmap(this.panel.Width, this.panel.Height); //建立畫布
Graphics graphics = Graphics.FromImage(bmp);//建立畫圖物件
graphics.DrawLine( new Pen(Color.Red,), new Point(0,0), new Point(100,100));//開始畫圖
e.graphics.DrawImage(bmp, this.panel.Location); //最重要的一步,要不然效果不會出來
總結:繪製到Bitmap物件上的優點
1>效能
可以提前繪製圖像,再在需要它時在Paint事件中繪製圖像。這樣,就只需繪製一次圖形,而不是在每次接收到Paint事件時都繪製他們。如果繪圖過程比較費時時,這樣做肯定會提高效能。
2>動態生成影象
有時需要在網頁中包含一個動態生成的圖形。為此,可以在Web伺服器上繪製圖像,然後在網頁上包含一個對該動態生成影象的引用。3>準備複雜的3D圖形
如果圖形有多個層,即首先需要繪製背景,然後繪製中間影象前景,在螢幕之外繪製圖像就允許先完全準備好影象,再把他們顯示到螢幕上。這將防止因在螢幕上繪製多層影象而導致的難看的效果。而且,一些影象處理效果例如模糊和銳化,只能在顯示影象之前通過直接處理影象來獲得。提前繪製圖像,就可以使用這些處理功能。
備註:
其中的panel 是一個控制元件, 名字就是 Panel, 在屬性中 (layout)DOCK中是 Fill.
這就是我總結的2中畫圖的方式,如果有其它的大家可以留言, 方便我去整理。 每天進步一點點。