2012-07-09 156 views
10

我想畫一個bmp圖像是進入的方法在C#中使用的DrawLine方法如何在圖片上畫線?

public void DrawLineInt(Bitmap bmp) 
{ 

Pen blackPen = new Pen(Color.Black, 3); 

int x1 = 100; 
int y1 = 100; 
int x2 = 500; 
int y2 = 100; 
// Draw line to screen. 
e.Graphics.DrawLine(blackPen, x1, y1, x2, y2); 
} 

這給予error.So我想知道如何在這裏包括油漆事件上線 (PaintEventArgs的é )

當我們調用drawmethod時,還想知道如何傳遞參數? 例如

DrawLineInt(Bitmap bmp); 

此提供以下錯誤

+1

「這給了一個錯誤」。什麼錯誤? – Oded 2012-07-09 20:48:55

回答

16

「在C#中用drawline方法傳入方法的bmp圖像上畫一條線」

PaintEventArgs e會建議您在對象的「paint」事件期間執行此操作。既然你是在一個方法中調用它,那麼你不需要在任何地方添加PaintEventArgs。

要做到這一點的方法,使用@ BFree的答案。

public void DrawLineInt(Bitmap bmp) 
{ 
    Pen blackPen = new Pen(Color.Black, 3); 

    int x1 = 100; 
    int y1 = 100; 
    int x2 = 500; 
    int y2 = 100; 
    // Draw line to screen. 
    using(var graphics = Graphics.FromImage(bmp)) 
    { 
     graphics.DrawLine(blackPen, x1, y1, x2, y2); 
    } 
} 

重繪對象時引發「Paint」事件。欲瞭解更多信息,請參閱:

http://msdn.microsoft.com/en-us/library/system.windows.forms.control.paint.aspx

+2

你應該在完成之後丟棄筆。或者把它放在'using(var blackPen = new Pen(Color.Black,3))'塊中。 – 2016-04-15 21:21:13

5

您需要從Image獲得Graphics對象,像這樣的「名‘E’在目前情況下不存在」:

using(var graphics = Graphics.FromImage(bmp)) 
{ 
    graphics.DrawLine(...) 
} 
+0

我是否需要在代碼中的任何位置添加PaintEventArgs? – user1150071 2012-07-09 21:01:30

+0

@ user1150071「我是否需要在代碼中的任何位置添加PaintEventArgs?」簡短的回答,沒有。長答案,請參閱下面的帖子。 – Tom 2012-07-09 21:18:13