2012-07-04 117 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