2016-05-23 93 views
1

我試着用FileStream讀取圖像文件,並將它成功地閱讀它,但它輸出此錯誤消息如何正確讀取圖像文件?

「參數無效」。

public Bitmap streamimage(string Fname) 
{ 
    Bitmap bm; 
    using (FileStream stream = new FileStream(Fname, FileMode.Open, FileAccess.Read)) 
    { 
     bm = (Bitmap)Image.FromStream(stream); 
     stream.Close(); 
     return bm; 
    } 
} 
+0

您是否瞭解[此位圖構造函數](https://msdn.microsoft.com/zh-cn/library/0cbhe98f.aspx)?你可以嘗試刪除'stream.Close()',它將被自動關閉,因爲它被封裝在'using'中。 – Blorgbeard

+0

指出...我可以知道什麼原因「參數無效」 –

回答

2

使用

Image I = Image.FromFile("FilePath"); 

,並使用該圖像

Bitmap bm= new Bitmap(I); 

或者

Bitmap bm= new Bitmap("FilePath"); 

您可以編輯這樣

代碼
public Bitmap streamimage(string Fname) 
{ 
    Bitmap bm; 
    FileStream stream = new FileStream(Fname, FileMode.Open, FileAccess.Read); 
    bm = (Bitmap)Image.FromStream(stream); 
    return bm; 
} 
+1

選項1是理想的(+1),它負責所有內部處理。 –

1

當從流開口,所述流必須保持開放。

我建議您使用將文件路徑作爲參數的位圖構造函數。

return new Bitmap(Fname); 
+0

啊,是的,[這裏](https://msdn.microsoft.com/en-us/library/93z9ee4x.aspx)是MSDN的報價:「您必須保持該流在圖像的整個生命週期中打開。「 – Blorgbeard