2012-07-09 22 views
10

quiero dibujar una línea de una imagen BMP que es pasar a un método que utiliza drawLine método en C#cómo dibujar una línea en una imagen?

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); 
} 

esto dará una error.So quiero saber cómo incluir evento de dibujo aquí en (e PaintEventArgs)

y también quieres saber cómo pasar parámetros cuando llamamos a drawmethod? ejemplo

DrawLineInt(Bitmap bmp); 

esto da el siguiente error "El nombre 'e' no existe en el contexto actual"

+1

"esto da un error". ¿Qué error? – Oded

Respuesta

16

"Dibujar una línea de una imagen bmp que es pasar a un método que utiliza drawLine método en C# en"

PaintEventArgs e sugeriría que está haciendo esto durante el evento "pintar" para un objeto. Como llama esto por un método, no necesita agregar PaintEventArgs e en ninguna parte.

Para hacer esto en un método, use la respuesta de @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); 
    } 
} 

El evento "Pintura" se levanta cuando se vuelve a dibujar el objeto. Para más información ver:

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

+2

También debe desechar su pluma una vez que haya terminado con ella. O póngalo dentro de un bloque 'using (var blackPen = new Pen (Color.Black, 3))'. –

5

Es necesario para obtener el objeto Graphics del Image así:

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

¿Necesito agregar PaintEventArgs e en cualquier parte del código? – user1150071

+0

@ user1150071 "¿Necesito agregar PaintEventArgs e en cualquier parte del código?" respuesta corta, no. Larga respuesta, mira mi publicación a continuación. – Tom

Cuestiones relacionadas