none
關於PictureBox存成圖檔的問題? RRS feed

  • 問題

  • Hi 版大 : 我使用 VS 2005 VB來做, 我在 Dialog加上  PictureBox元件, 並在PictureBox上畫圖, 到這邊我都有做出來, 可是要將PcitureBox上的圖案存成圖檔就出了問題, 請版大指導一下, 程式如下:

    Dim image1 As Image = PictureBox1.Image

    image1.Save("C:\newbmp.bmp", System.Drawing.Imaging.ImageFormat.Bmp)

     

    出現Error message 如下:

    你的應用程式中的元件發生未處理的例外狀況

     

     

    Chrislin

     

    2007年4月30日 上午 05:32

解答

  • Hi,

    我用下面程式碼去測試是沒有問題的,我事先載入了一張圖片在PictureBox中

    Dim Img As Image
      Img = PictureBox1.Image
      Img.Save("C:\newbmp.bmp", System.Drawing.Imaging.ImageFormat.Bmp)

    您有檢查過PictureBox.Image是否正常如預期嗎?或是要請您提供更詳細的資訊以便判斷了。

    2007年4月30日 上午 05:53
    版主
  • HI,

     

    您可以這樣做:

     

    1. 在類別中宣告:

         Private x As Integer
            Private y As Integer
            Private bmp As Bitmap
            Private g As Graphics

    2.  製作Load事件處理程序

         Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
               bmp = New Bitmap(PictureBox1.Width, PictureBox1.Height)
               g = Graphics.FromImage(bmp)

         End Sub

    3.  製作PictureBox的Mouse事件處理程序

        Private Sub PictureBox1_MouseDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles    PictureBox1.MouseDown
            x = e.X
            y = e.Y
            g.DrawString("Test", Me.Font, Brushes.Blue, x, y)
            PictureBox1.Image = bmp
          End Sub

    4. 存圖

      Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Dim image1 As Image = PictureBox1.Image

          image1.Save("C:\newbmp.bmp", System.Drawing.Imaging.ImageFormat.Bmp)
        End Sub

     

    tihs

    2007年4月30日 上午 06:34

所有回覆

  • Hi,

    我用下面程式碼去測試是沒有問題的,我事先載入了一張圖片在PictureBox中

    Dim Img As Image
      Img = PictureBox1.Image
      Img.Save("C:\newbmp.bmp", System.Drawing.Imaging.ImageFormat.Bmp)

    您有檢查過PictureBox.Image是否正常如預期嗎?或是要請您提供更詳細的資訊以便判斷了。

    2007年4月30日 上午 05:53
    版主
  • HI,

     

    您可以這樣做:

     

    1. 在類別中宣告:

         Private x As Integer
            Private y As Integer
            Private bmp As Bitmap
            Private g As Graphics

    2.  製作Load事件處理程序

         Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
               bmp = New Bitmap(PictureBox1.Width, PictureBox1.Height)
               g = Graphics.FromImage(bmp)

         End Sub

    3.  製作PictureBox的Mouse事件處理程序

        Private Sub PictureBox1_MouseDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles    PictureBox1.MouseDown
            x = e.X
            y = e.Y
            g.DrawString("Test", Me.Font, Brushes.Blue, x, y)
            PictureBox1.Image = bmp
          End Sub

    4. 存圖

      Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Dim image1 As Image = PictureBox1.Image

          image1.Save("C:\newbmp.bmp", System.Drawing.Imaging.ImageFormat.Bmp)
        End Sub

     

    tihs

    2007年4月30日 上午 06:34