c# 圖片檔案讀取

iDotNetSpace發表於2009-12-28

 c#讀取圖片檔案的方法很多,如可以通過

  Image.FromFile(path);但該方面 在釋放 Image 之前,此檔案將一直保持鎖定狀態(MSDN),所以對於共享檔案或多使用者訪問的Image來說,該方法不合適。網上也提出來一些方法去解決,如在載入影像的時候用一種方法替代:

System.Drawing.Image img = System.Drawing.Image.FromFile(filepath);
System.Drawing.Image bmp = new System.Drawing.Bitmap(img);
img.Dispose();

雖然我們可以在程式中及時釋放,但如果檔案設定成只讀或者使用者未釋放前還是無法訪問的,會提示說該檔案正在被另一程式訪問。

經過實踐,我們可以通過FileStream 來開啟檔案,這樣就可以實現不鎖定Image檔案,到時可以讓多使用者同時訪問Image檔案。具體檔案實現如下:

FileStream fs = File.OpenRead(path); //OpenRead
int filelength = 0;
filelength = (int)fs.Length; //獲得檔案長度
Byte[] image = new Byte[filelength]; //建立一個位元組陣列
fs.Read(image, 0, filelength); //按位元組流讀取
System.Drawing.Image result = System.Drawing.Image.FromStream(fs);
fs.Close();

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-623742/,如需轉載,請註明出處,否則將追究法律責任。

相關文章