2009-09-09 133 views
0

如何獲取我在picturebox上繪製的圖像?在我的應用程序中,我創建了一個帶有徒手繪製的表單,但是我無法保存作爲文件繪製的圖像,出現錯誤消息「對象引用未設置爲對象的實例」。我正在使用代碼從picturebox中獲取圖像

me.picturebox1.image.save(filename,sysytem.....jpeg) 

任何人知道,請幫我...謝謝

回答

1

似乎有什麼本質你的代碼錯誤(除非該問題與參數之一)。 PictureBox.Image.Save()確實有效!

PictureBox可能會顯示一個圖像,但它引用的對象Image已被丟棄。

If picturebox1.Image isnot Nothing Then 
    ... 
End If 

此外,你應該檢查繪製圖像的代碼......它處理引用的預期:您可以先實現支票爲空擺脫對​​象引用錯誤的?

0

我試過類似的操作。

pictureBox1.Image.Save("C:\\tempStack.jpg", ImageFormat.Jpeg); 

原因可能是pictureBox1(非常不可能)或pictureBox1.Image未設置。

使用

pictureBox1.Load("") 

,以試圖挽救它之前加載圖像。

+0

未設置含義Nothing或Null引用。 – Koekiebox 2009-09-09 07:49:11

4

我會假定你永遠不會指定PictureBoxImage屬性,而是直接在從PictureBox控件檢索的Graphics對象上執行繪圖命令。如果是這種情況,執行繪圖時,Image屬性將保持爲Nothing/null

myPictureBox.Image = New Bitmap(myPictureBox.ClientSize.Width, _ 
           myPictureBox.ClientSize.Height) 

然後,當您要執行一些繪圖,使用Graphics對象從Image,而不是PictureBox:要解決這個問題,當你初始化PictureBox控制分配一個空圖像的Image財產

Using g As Graphics = Graphics.FromImage(myPictureBox.Image) 
    ' do the drawing ' 
End Using 

通過這種方法,您可以將圖像保存爲你在當前的代碼做的,通過簡單的PictureBox.Image對象調用Save

+0

謝謝你的回答。但是請告訴我在哪裏可以放置這個代碼 – user85511 2009-09-09 09:09:39

+0

@sinoydevassy:這真的取決於你的應用程序的結構,但如果你有一個代碼點,你初始化一個「新繪圖」,那會成爲分配新的空的「位圖」對象的地方。 – 2009-09-09 09:27:42

+0

非常感謝你,我的工作很好。我以load.thank形式初始化了你的問題,但是有一個問題。保存的圖像的背景顏色是黑色的,所以我不能看到我的圖像,因爲我的繪圖筆顏色也是黑色。謝謝 – user85511 2009-09-09 10:22:19