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
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
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
(ilsImages is ImageList)
Thanks
AC