Out of memory error while trying to assing memorystream object to a bitmap object

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • AnChan

    #1

    Out of memory error while trying to assing memorystream object to a bitmap object

    Hello all

    Am trying to debug an application written by someone else. The issue is we get an "Out of Memory" when executing the following code

    Code:
    Dim mImages(1000) As Image
    dr = cmd.ExecuteReader()
                    While dr.Read
                        mName = CStr(dr.GetValue(0))
                        mAccount = CStr(dr.GetValue(1))
                        mLocation = CStr(dr.GetValue(2))
                        mdate = FormatDateTime(dr.GetValue(3))
                        Dim bytBlobData(dr.GetBytes(4, 0, Nothing, 0, Integer.MaxValue) - 1) As Byte
                        dr.GetBytes(4, 0, bytBlobData, 0, bytBlobData.Length)
                        Dim stmBlobData As New MemoryStream(bytBlobData) 
                        Dim MyBitmap As New Bitmap(stmBlobData) <<== Error in this line
    
                        Dim objStream As New MemoryStream
                        Dim myEncoder As Encoder
                        Dim myEncoderParameter As EncoderParameter
                        Dim myEncoderParameters As EncoderParameters
                        Dim myImageCodecInfo As ImageCodecInfo = GetEncoderInfo("image/jpeg")
                        myEncoder = Encoder.Transformation
                        myEncoderParameters = New EncoderParameters(1)
                        myEncoderParameter = New EncoderParameter(myEncoder, i)
                        myEncoderParameters.Param(0) = myEncoderParameter
                        MyBitmap.Save(objStream, myImageCodecInfo, myEncoderParameters)
                        mImages(i) = Drawing.Image.FromStream(objStream)
                        Me.ilsImages.Images.Add(i, System.Drawing.Image.FromStream(objStream))
                        Me.ToolStrip1.Items.Add(System.Drawing.Image.FromStream(objStream))
                        Me.ToolStrip1.Items(i).Text = FormatDateTime(mdate, DateFormat.ShortDate)
                        stmBlobData.Close()
                        'objStream.Close()
                        MyBitmap.Dispose()
                        i = i + 1
                    End While
    This happens mostly when the image is big. Can someone help me how to handle this issue? I tried searching everywhere but in vain.
    (ilsImages is ImageList)

    Thanks
    AC
Working...