2012-07-04 68 views
-3

我是c#的初学者。 我希望将pictureBox1, 中的图片保存到本地磁盘,那么我需要做什么?C#从picturebox保存图片

private void button1_Click(object sender, EventArgs e) 
    { 

     Graphics g; 
     int i = 9; 
     int k; 
     String[] letter1 = new String[9] { "b", "W", "b", "w", "B", "w", "B", "w", "B" }; 
     g= pictureBox1.CreateGraphics(); 
     Pen b = new Pen(Color.Black, 1.0f); 
     Pen B = new Pen(Color.Black, 2.0f); 
     Pen w = new Pen(Color.White, 1.0f); 
     Pen W = new Pen(Color.White, 2.0f); 

     for (int j = 0; j <= 8; j++) 
     { 
      String array = letter1[j]; 
      if (array.Equals("b") || array.Equals("w")) 
      { 
       i = i + 1; 
       k = 50; 
       if (array.Equals("b")) 
       { 
        g.DrawLine(b, i, 10, i, k); 
       } 

      } 
      else 
       if (array.Equals("B") || array.Equals("W")) 
       { 
        i = i + 2; 
        k = 51; 
        if (array.Equals("B")) 
         g.DrawLine(B, i, 10, i, k); 
       } 


     } 
+1

的可能重复[C#:如何将PictureBox控件保存为JPEG文件,它的编辑后(http://stackoverflow.com/questions/1063505/c -sharp-how-to-save-a-picturebox-control-as-a-jpeg-after-its-edited) – CodeCaster

回答

2

如果您创建一个空的位图对象和绘制,而不是那么您可以显示位于PictureBox中的位图,并在完成后将其保存到磁盘。

看看这个question

Bitmap bt; 

    private void Form_Load(object sender, EventArgs e) 
    { 
     bt = new Bitmap(100,100); 
     pictureBox1.Image = bt; 
    } 

    private void button1_Click(object sender, EventArgs e) 
    { 
     Graphics g = Graphics.FromImage(bt); 

     int i = 9; 
     int k; 
     String[] letter1 = new String[9] { "b", "W", "b", "w", "B", "w", "B", "w", "B" }; 

     Pen b = new Pen(Color.Black, 1.0f); 
     Pen B = new Pen(Color.Black, 2.0f); 
     Pen w = new Pen(Color.White, 1.0f); 
     Pen W = new Pen(Color.White, 2.0f); 

     for (int j = 0; j <= 8; j++) 
     { 
      String array = letter1[j]; 
      if (array.Equals("b") || array.Equals("w")) 
      { 
       i = i + 1; 
       k = 50; 
       if (array.Equals("b")) 
       { 
        g.DrawLine(b, i, 10, i, k); 
       } 

      } 
      else 
       if (array.Equals("B") || array.Equals("W")) 
       { 
        i = i + 2; 
        k = 51; 
        if (array.Equals("B")) 
         g.DrawLine(B, i, 10, i, k); 
       } 

     } 
     pictureBox1.Refresh(); 
     pictureBox1.Image.Save("c:\\test.bmp"); 

    } 
+0

图片成功save.but图像是全黑的,没有我想要的线条。 – user1500886

+0

@ user1500886上面的代码已被验证并正常工作。 – JonC

+0

谢谢乔恩,你帮了我很多。 – user1500886