2014-10-22 71 views
-1

我知道這個問題已經回答過。但是沒有一個答案是正確的。 如何捕獲窗體的圖像並保存。我用這個:將窗體捕獲成圖像

Bitmap bmp = new Bitmap(this.Width, this.Height); 
this.DrawToBitmap(bmp, new Rectangle(Point.Empty, bmp.Size)); 
bmp.Save(@"C://Desktop//sample.png",ImageFormat.Png); 

,但得到的錯誤:

A generic error occurred in GDI+

我也看到了這個錯誤,但沒有任何的建議,對我的工作!請幫助

+0

你確定你不只是忘記處理位圖嗎? – Sayse 2014-10-22 06:50:25

回答

3

問題出在bmp.Save(@"C://Desktop//sample.png",ImageFormat.Png);

首先它必須是@「C:\ Desktop \ sample.png」,你不需要用verbatim string逃脫任何東西。

第二次確保路徑是正確的,你有寫信給permision。

三如sayse指出配置位圖。

using(Bitmap bmp = new Bitmap(this.Width, this.Height)) 
{ 
    this.DrawToBitmap(bmp, new Rectangle(Point.Empty, bmp.Size)); 
    bmp.Save(@"C:\Desktop\sample.png",ImageFormat.Png); // make sure path exists! 
} 
+0

編輯:它工作正常。謝謝。請忽略以下 謝謝。其實這首先是我的問題。我如何處理位圖?通過使用bmp.Dispose?當我在保存之前使用這個時,我得到錯誤。當我在保存後使用它時,我得到相同的GDI +錯誤 – Sina 2014-10-22 08:00:54

0

您的路徑格式錯誤。應該是:

bmp.Save("C:\\Desktop\\sample.png",ImageFormat.Png); 

更重要的是 - 檢查,如果該文件夾存在