【问题标题】:Out of Memory Exception while working with Images in .NET(VB.Net 2008)在 .NET (VB.Net 2008) 中处理图像时出现内存不足异常
【发布时间】:2011-09-16 07:49:39
【问题描述】:

我在处理大图像时遇到了一个奇怪的问题(大小约为 48 mb,Tiff 文件有 175 页。)。现在,当我尝试将 Imagefile 转换为位图并进行一些操作时,系统会随机抛出“Out of memory exception”

下面是我的代码 sn-p。我在“ pages = New Bitmap(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

【问题讨论】:

    标签: vb.net image memory-leaks bitmap


    【解决方案1】:

    我不懂 VB,但看起来你在上面的 for 循环中创建了一个新的位图内存,而没有释放中间的内存。

    改为使用Imagemagick 从 tif 中提取图像,然后对其中的每一个进行操作。

    只是一个想法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-09-02
      • 2011-04-13
      • 2011-06-18
      • 2015-02-19
      • 1970-01-01
      • 2014-07-23
      • 1970-01-01
      相关资源
      最近更新 更多