2013-12-18 69 views
3

時後,它會引發錯誤 代碼更然後1366文件掃描指望選中的文件夾 代碼的TIF文件:OutOfMemory錯誤在C#中的TIF文件

int mergeTiffPages(string[] path) 
    { 
     Cursor.Current = Cursors.WaitCursor; 
     string[] sa = path; 
     int frame = 0; 
     Bitmap bitmap; 
     int count = 0 ; 
     foreach (string s in sa) 
     { 
      { 
       try 
       { 
        bitmap = (Bitmap)Image.FromFile(s);//Its will raise an error OutOf Memory 
        if (bitmap != null) 
        { 
         count = bitmap.GetFrameCount(FrameDimension.Page); 
         frame += count; 
         bitmap = null; 
         count = 0; 
        } 
       } 
       catch(Exception ex) 
       { 
        MessageBox.Show("Not TIFF image file. please select the folder in which tif file is available", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Error); 
       } 
      } 
     } 

     cntval.Text = frame.ToString(); 
     Cursor.Current = Cursors.Default; 
     return 1; 

    } 

功能設定的路徑所有的圖像文件的陣列

Error:OutOfMemory 
+0

'string [] sa = path;'這個任務根本不需要。 –

+0

Bitmap類是.NET Framework中的單數類,可以阻止您忽略IDisposable。 –

回答

1

使用此:

using (bitmap = (Bitmap)Image.FromFile(s)) 
         { 

           ...       
         } 
+0

這將調用Dispose方法,告訴你的圖像釋放它在超出範圍時離開的任何內存(離開使用範圍)。 – sisve

+1

謝謝你的工作,你也解決了我的困惑.. –