2011-06-16 104 views
1

在處理大圖像(大小約爲48 MB,TIFF文件有175頁時)時,我正面臨一個奇怪的問題。現在,當我試圖將Imagefile轉換爲位圖並執行一些操作時,隨機系統會拋出「內存異常異常」在.NET中使用圖像時出現內存不足異常(VB.Net 2008)

下面是我的代碼片段。我在線上獲取錯誤(隨機)「pages =新位圖(lorigionalFile)」,其中LoriginalFile是ImageType,Page是Bitmap。

因此,請指導我如何消除此類錯誤或停止內存泄漏。


 Dim lorigionalFile As System.Drawing.Image 
     Dim SaveEncodeParam As EncoderParameter 'Encoder parameter to create multi page image 
     Dim EncoderParams As EncoderParameters = New EncoderParameters(1) 'Encoder parameter Array 
     Dim pages As Bitmap 'Used to save image page 
     Dim NextPage As Bitmap 'Used to save next image page 
     Dim PageNumber As Integer 
     Lfr = File.Open(FileName, FileMode.Open, FileAccess.ReadWrite) 

     lorigionalFile = System.Drawing.Image.FromStream(Lfr) 

     ''Get number of page count in image 
     PageNumber = getPageNumber(lorigionalFile) 

     'set first page as active frame 
     cintPagenumber = PageNumber 

     'loop to every page of attached document 
     For i As Integer = 0 To PageNumber - 1 
      'set active from as per loop variable 
      lorigionalFile.SelectActiveFrame(FrameDimension.Page, i) 

      'Will get errow in below line(randomly), when there are other programs running in background 
      pages = New Bitmap(lorigionalFile) 

       'image store in Image 
       CalImageContainer.Add(pages) 
       'make a copy on image container 
       CalImageContainerCopy.Add(pages) 

     Next 
     Lfr.Close() 

    End Try 

感謝

PRATIK vohera

回答

0

我不知道VB,但它看起來就像你在創建一個新的位圖存儲您的for循環上述兩者之間沒有釋放內存。

改爲使用Imagemagick從tif中提取圖像,然後對每個圖像進行操作。

只是一個想法。

相關問題