none
請問有關圖片存檔的問題 RRS feed

  • 問題

  • 開發工具:Visual Basic 2005

    我在PictureBox上面用程式碼畫了一些圖

    要怎麼把這些圖存成檔案和放到剪貼簿

    我用PictureBox.Image都是Nothing

    如果隨便放一個,他存的都是原本的那個

    修改後的都沒有放上去

     Dim myPen As New Pen(System.Drawing.Color.Black, 1)
     Dim formGraphics As Graphics

     formGraphics = PB.CreateGraphics()

     pathS.AddEllipse(10, 110, 200, 200)

     formGraphics.DrawPath(myPen, pathS)

     myPen.Dispose()
     formGraphics.Dispose()

    我寫的是這樣

    2008年10月23日 下午 02:16

解答

  • 因為 並不是畫在 PictureBox.Image 這個屬性上。

     

    你可以:

    Dim bmp As New Bitmap(PB.ClientSize.Width, PB.ClientSize.Height, Imaging.PixelFormat.Format32bppPArgb)

    Dim formGraphics As Graphics = Graphics.FromImage(bmp)

     

     pathS.AddEllipse(10, 110, 200, 200)

     formGraphics.DrawPath(myPen, pathS)

     myPen.Dispose()
     formGraphics.Dispose()

     

    bmp.Save(Application.StartupPath & "\Output.png", Imaging.ImageFormat.Png)

    PB.Image = bmp

     

    最後加上:

    My.Computer.Clipboard.SetImage(bmp)

     

    你就可以在小畫家或是 Word 貼上圖片。

    2008年10月23日 下午 02:47
  • 那是透明色的關係,你可以先用 Graphics.FillRectangle 填底色。

     

    2008年10月23日 下午 03:11

所有回覆

  • 因為 並不是畫在 PictureBox.Image 這個屬性上。

     

    你可以:

    Dim bmp As New Bitmap(PB.ClientSize.Width, PB.ClientSize.Height, Imaging.PixelFormat.Format32bppPArgb)

    Dim formGraphics As Graphics = Graphics.FromImage(bmp)

     

     pathS.AddEllipse(10, 110, 200, 200)

     formGraphics.DrawPath(myPen, pathS)

     myPen.Dispose()
     formGraphics.Dispose()

     

    bmp.Save(Application.StartupPath & "\Output.png", Imaging.ImageFormat.Png)

    PB.Image = bmp

     

    最後加上:

    My.Computer.Clipboard.SetImage(bmp)

     

    你就可以在小畫家或是 Word 貼上圖片。

    2008年10月23日 下午 02:47
  • 謝謝您的回覆

    真快速

    而且我這樣弄OK

     

    只是為什麼複製貼到Word裡面

    是藍色背景

    就這個最後的問題我的整個程式就完成了^^

    謝謝啊

    2008年10月23日 下午 02:54
  • 那是透明色的關係,你可以先用 Graphics.FillRectangle 填底色。

     

    2008年10月23日 下午 03:11
  • 很感激

    謝謝!!

    2008年10月23日 下午 03:52