C#描画後に描画したファイルを画像で保存

2516 ワード

これは今私自身のノートになって、すべて书いていないで、见ないでください、ハハハ
1、図面はまずGraphiesオブジェクトの参照を作成し、画像はすべてこの表示に基づいている.
Graphics graphics;                          //  

コンストラクション関数でインスタンス化
graphics = this.groupBox3.CreateGraphics();        // groupBox panel 

2、画像表示ボックスのロード
PictureBox pictureBox1.Image = new Bitmap(1270, 776);

3、ファイルの画像を開く
        private void  _Click(object sender, EventArgs e)
        {
            OpenFileDialog openFileDialog = new OpenFileDialog();

            openFileDialog.InitialDirectory = "G:/ / .jpeg";
            openFileDialog.Filter = "Bitmap files (*.bmp)|*.bmp|Jpeg files (*.jpg)|*.jpg|All valid files (*.bmp/*.jpg)|*.bmp/*.jpg| All Files|*.*";
            openFileDialog.FilterIndex = 2;
            openFileDialog.RestoreDirectory = true;

            if (DialogResult.OK == openFileDialog.ShowDialog())
            {
                m_Bitmap = (Bitmap)Bitmap.FromFile(openFileDialog.FileName, false);
                this.AutoScroll = true;
                this.AutoScrollMinSize = new Size((int)(m_Bitmap.Width * Zoom), (int)(m_Bitmap.Height * Zoom));
                this.Invalidate();

                pictureBox1.Width = m_Bitmap.Width;
                pictureBox1.Height = m_Bitmap.Height;
                pictureBox1.Image = m_Bitmap;
                groupBox3.Width = pictureBox1.Width;
                groupBox3.Height = pictureBox1.Height;

                //Graphics graphics = groupBox3.CreateGraphics();
                graphics = Graphics.FromImage(m_Bitmap);
            }
        }

4、画像描画
graphics.DrawLine(pen, 10, 10, 500, 500);

Graphics.FromImage(pictureBox1.Image).DrawRectangle(pen, 55, 55, 100, 100);
public Form1()
{
    InitializeComponent();    //  
    pictureBox1.Image = new Bitmap(pictureBox1.Width, pictureBox1.Height);    //  
    SolidBrush b = new SolidBrush(Color.White);    //  
    //  
    Graphics.FromImage(pictureBox1.Image).FillRectangle(b, 0, 0, pictureBox1.Width, pictureBox1.Height);
}
//  
private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
{
    //  
    Graphics.FromImage(pictureBox1.Image).DrawEllipse(new Pen(Brushes.Red), e.X, e.Y, 1, 1);
    pictureBox1.Invalidate(); 
}

private void button1_Click(object sender, EventArgs e)
{
    pictureBox1.Image.Save(@"D:\1.jpg", ImageFormat.Jpeg);
    MessageBox.Show("ok");
}