By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
448,966 Members | 1,488 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 448,966 IT Pros & Developers. It's quick & easy.

Out of Memory Exception: System.Drawing.Image.FromFile

P: n/a
I get an out of memory exception when attempting to excecute the
following code:

original = System.Drawing.Image.FromFile(file.FileName,true);

I ONLY get this exception when the file is in the "My Documents"
folder or subfolders. If the file lives anywhere else on the hard
drive, I have no problems.

What could be going on here?

Thanks in advance,
Stacey
Nov 17 '05 #1
Share this Question
Share on Google+
3 Replies


P: n/a
PJ
I had this problem when first learning how to create thumbnails from images.
Unfortunately, I don't remember the specific problem....however, I think
you'd do much better off by creating an Image object from a byte array.
Grab the file from a FileStream object first and then create the image
object from a BinaryReader off the FileStream instance....

If this isn't helping you...post back and I will give you code I use to
manipulate images from files/streams....just don't have it now...it at work
;-).

"anastasia" <an********@yahoo.com> wrote in message
news:fd*************************@posting.google.co m...
I get an out of memory exception when attempting to excecute the
following code:

original = System.Drawing.Image.FromFile(file.FileName,true);

I ONLY get this exception when the file is in the "My Documents"
folder or subfolders. If the file lives anywhere else on the hard
drive, I have no problems.

What could be going on here?

Thanks in advance,
Stacey

Nov 17 '05 #2

P: n/a
PJ
I had this problem when first learning how to create thumbnails from images.
Unfortunately, I don't remember the specific problem....however, I think
you'd do much better off by creating an Image object from a byte array.
Grab the file from a FileStream object first and then create the image
object from a BinaryReader off the FileStream instance....

If this isn't helping you...post back and I will give you code I use to
manipulate images from files/streams....just don't have it now...it at work
;-).

"anastasia" <an********@yahoo.com> wrote in message
news:fd*************************@posting.google.co m...
I get an out of memory exception when attempting to excecute the
following code:

original = System.Drawing.Image.FromFile(file.FileName,true);

I ONLY get this exception when the file is in the "My Documents"
folder or subfolders. If the file lives anywhere else on the hard
drive, I have no problems.

What could be going on here?

Thanks in advance,
Stacey

Nov 17 '05 #3

P: n/a
Public Function resiseImage(ByVal fullPath As String, _

ByVal FinalSize As Integer, ByVal NewFullPath As String, _

Optional ByVal DeleteOriginal As Boolean = False) As String

Dim result As String = "Success"

Dim imagefolder As String = Path.GetPathRoot(fullPath)

Dim imagename As String = Path.GetFileName(fullPath)

Dim extension As String = Path.GetExtension(imagename)

Dim height As Integer

Dim width As Integer

Dim BiggerSide As String

Dim myratio As Decimal

Dim futureheight As Integer

Dim futurewidth As Integer

Dim Normal As System.Drawing.Image

Dim newimage As System.Drawing.Image

Normal = Normal.FromFile(fullPath)

height = Normal.Height

width = Normal.Width

If height > width Then

BiggerSide = "height"

myratio = FinalSize / width

futurewidth = myratio * width

Try

newimage = Normal.GetThumbnailImage(futurewidth, FinalSize, Nothing, New
IntPtr())

If File.Exists(imagefolder & imagename) Then File.Delete(imagefolder &
imagename)

newimage.Save(NewFullPath, System.Drawing.Imaging.ImageFormat.Jpeg)

Catch exp As Exception

result = "failed"

newimage.Dispose()

Throw exp

End Try

ElseIf width > height Then

BiggerSide = "width"

myratio = FinalSize / width

futureheight = myratio * height

Try

newimage = Normal.GetThumbnailImage(FinalSize, futureheight, Nothing, New
IntPtr())

If File.Exists(NewFullPath) Then File.Delete(imagefolder & imagename)

newimage.Save(NewFullPath, System.Drawing.Imaging.ImageFormat.Jpeg)

Catch exp As Exception

result = "failed"

newimage.Dispose()

Throw exp

End Try

Else

BiggerSide = "Same"

myratio = 1

Try

newimage = Normal.GetThumbnailImage(FinalSize, FinalSize, Nothing, New
IntPtr())

If File.Exists(NewFullPath) Then File.Delete(imagefolder & imagename)

newimage.Save(NewFullPath, System.Drawing.Imaging.ImageFormat.Jpeg)

Catch exp As Exception

newimage.Dispose()

result = "failed"

Throw exp

End Try

End If

Normal.Dispose()

newimage.Dispose()

If DeleteOriginal = True Then File.Delete(fullPath)

Return result

End Function

End Class
"PJ" <pj*********@hotmail.com> wrote in message
news:u3**************@TK2MSFTNGP12.phx.gbl...
I had this problem when first learning how to create thumbnails from images. Unfortunately, I don't remember the specific problem....however, I think
you'd do much better off by creating an Image object from a byte array.
Grab the file from a FileStream object first and then create the image
object from a BinaryReader off the FileStream instance....

If this isn't helping you...post back and I will give you code I use to
manipulate images from files/streams....just don't have it now...it at work ;-).

"anastasia" <an********@yahoo.com> wrote in message
news:fd*************************@posting.google.co m...
I get an out of memory exception when attempting to excecute the
following code:

original = System.Drawing.Image.FromFile(file.FileName,true);

I ONLY get this exception when the file is in the "My Documents"
folder or subfolders. If the file lives anywhere else on the hard
drive, I have no problems.

What could be going on here?

Thanks in advance,
Stacey


Nov 17 '05 #4

This discussion thread is closed

Replies have been disabled for this discussion.