-1

描画用のプログラムを作成しました。System.graphics を使用して、panel1 に四角形などを form で描画します。 Graphics Mouse draw event: Draw panel1 からアートをビットマップとして取得したいので、次のコードを試しました:

using (var bmp = new Bitmap(panel1.Width, panel1.Height))
{
    panel1.DrawToBitmap(bmp, new Rectangle(0, 0, bmp.Width, bmp.Height));
    bmp.Save("output.png", System.Drawing.Imaging.ImageFormat.Jpeg);
}

しかし、それは画像の panel1 の背景色を生成します

4

1 に答える 1

1

パネルの Paint イベントにハンドラーを追加します (例: フォーム コンストラクター):

panel1.Paint += panel1_Paint;

イベント内のグラフィックを [再] 描画します。

void panel1_Paint(object sender, PaintEventArgs e)
{            
    DrawLine(e.Graphics);
}

保存すると、コードは問題なく動作するはずです。

private void button1_Click(object sender, EventArgs e)
{
    using (var bmp = new Bitmap(panel1.Width, panel1.Height))
    {
        panel1.DrawToBitmap(bmp, new Rectangle(0, 0, bmp.Width, bmp.Height));
        bmp.Save("c:\\temp\\output.png", System.Drawing.Imaging.ImageFormat.Jpeg);
    }
}
于 2016-10-25T18:12:50.937 に答える