c#でdrawlineメソッドを使用してメソッドに渡されるbmp画像に線を描画したい
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);
}
これはエラーになります。ここにPaintイベントを含める方法を知りたいです(PaintEventArgs e)。
また、drawmethodを呼び出すときにパラメーターを渡す方法を知りたいですか?例
DrawLineInt(Bitmap bmp);
これにより、次のエラーが発生します "名前 'e'は現在のコンテキストに存在しません"
"C#でdrawlineメソッドを使用してメソッドに渡されるbmp画像に線を描画します"
PaintEventArgs eは、オブジェクトの「ペイント」イベント中にこれを行うことをお勧めします。これをメソッドで呼び出すので、どこにも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);
}
}
「ペイント」イベントは、オブジェクトが再描画されるときに発生します。詳細については、以下を参照してください。
http://msdn.Microsoft.com/en-us/library/system.windows.forms.control.Paint.aspx
次のように、Graphics
からImage
オブジェクトを取得する必要があります。
using(var graphics = Graphics.FromImage(bmp))
{
graphics.DrawLine(...)
}