C#で、空の画像を取得して、たとえば線を引く方法はありますか?可能であれば、これを行う方法の例を教えていただけますか?私は以前にこのようなものを見たことがありますが、それを行う方法についてはあまりよくわかりません。オンラインで見つけたすべての場所で、既存の画像からそれを実行し、それを描画していました。何もロードする必要はありません。作業中のインターフェイスにとってはちょっといいことです。コードを要求しているように聞こえますが、要求しているのは、何もロードせずに画像を描画する方法だけです。
質問する
545 次
2 に答える
1
GDI +(より具体的にはGraphics
クラス)を使用できます。
// Load an existing image into a Graphics object
using (var image = Image.FromFile(@"c:\work\input.png"))
using (var gfx = Graphics.FromImage(image))
{
// Draw a line on this image from (0x0) to (50x50)
gfx.DrawLine(new Pen(Color.Red), 0, 0, 50, 50);
// save the resulting Graphics object to a new file
using (var output = File.OpenWrite(@"c:\work\output.png"))
{
image.Save(output, ImageFormat.Png);
}
}
アップデート:
また、新しい画像を作成する場合は、次のようにします。
// Create a new image 50x50 in size
using (var image = new Bitmap(50, 50))
using (var gfx = Graphics.FromImage(image))
{
// Draw a line on this image from (0x0) to (50x50)
gfx.DrawLine(new Pen(Color.Red), 0, 0, 50, 50);
// save the resulting Graphics object to a new file
using (var output = File.OpenWrite(@"c:\work\output.png"))
{
image.Save(output, ImageFormat.Png);
}
}
于 2013-01-25T11:17:23.807 に答える
1
フォーム上にパネルを作成する必要があります。バッファはBitmap
です。
次に、panel1_MouseDown
-Eventを使用して何かを描画します。
using (Graphics bufferGrph = Graphics.FromImage(buffer))
{
bufferGrph.DrawRectangle(new Pen(Color.Blue, 1), 1, 1, 100, 100); //Example
}
panel1.Invalidate();
次に、panel1_Paint
-イベントを使用して、次のコマンドでパネルに画像を描画します。
e.Graphics.DrawImageUnscaled(buffer, Point.Empty);
パネルのコンテンツを保存するには、コントロールを使用します。
Bitmap bmp = new Bitmap(panel1.Width,panel1.Height);
panel1.DrawToBitmap(bmp, panel1.Bounds);
bmp.Save(@"MYPATH HERE");
于 2013-01-25T11:21:43.627 に答える