Как рисовать линию на изображении?

Я хочу нарисовать линию на изображении bmp, которое передается в метод с использованием метода 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);
}

это даст ошибку. Поэтому я хочу знать, как включить событие рисования здесь (PaintEventArgs e)

а также хотите знать, как передавать параметры при вызове метода drawmethod? Пример

DrawLineInt(Bitmap bmp);

это дает следующую ошибку "Имя" e "не существует в текущем контексте"

Ответ 1

"Нарисуйте строку на изображении bmp, которая переходит в метод с использованием метода drawline в С#"

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

Вам нужно получить объект Graphics из Image так:

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