RE: Error when attempting to open files
- From: Morten Wennevik [C# MVP] <MortenWennevik@xxxxxxxxxxx>
- Date: Tue, 1 Jul 2008 05:39:02 -0700
Hi Dylan,
Image.FromStream holds the underlying stream while it is in use. Try
loading the image data into memory and create an image from that. After the
ReadAllBytes line the File is released.
byte[] data = File.ReadAllBytes(imagepath);
MemoryStream ms = new MemoryStream(data);
Image img = Image.FromStream(ms);
Remember not to dispose the MemoryStream or you will end up with the
OutOfMemoryException you got when you closed the File.
--
Happy Coding!
Morten Wennevik [C# MVP]
"Dylan Parry" wrote:
Hi,.
I have the following code:
private Image _image;
public MyImage(string filename)
{
FileStream file = File.Open(filename, FileMode.Open);
_image = Image.FromStream(file);
//file.Close();
}
Which essentially is used for passing a file name of an image, which is
then used for various things such as creating a thumbnail.
The problem I'm having is that if I create a thumbnail of the image that
is open, then reload the page in my browser, I get an error that reads:
"The process cannot access the file ... because it is being used by
another process"
So I figured that was because I forget to close the file stream after
opening the image file, so I added in the line of code that is commented
out in the example above.
Now when I run the code I receive:
"Out of memory."
If I attempt to create a thumbnail image with:
_image = _image.GetThumbnailImage(size, size, null, IntPtr.Zero);)
or:
"A generic error occurred in GDI+."
If I simply write the contents of the image to the browser:
_image.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);
When I don't close the file stream it works okay for the first time I
view the page (as a thumbnail, or the full-sized image), but gives the
error about it being in use if I refresh. It doesn't work at all when I
close the file stream.
Any ideas what I'm doing wrong here?
--
Dylan Parry
http://electricfreedom.org | http://webpageworkshop.co.uk
The opinions stated above are not necessarily representative of
those of my cats. All opinions expressed are entirely your own.
- Follow-Ups:
- Re: Error when attempting to open files
- From: Dylan Parry
- Re: Error when attempting to open files
- References:
- Error when attempting to open files
- From: Dylan Parry
- Error when attempting to open files
- Prev by Date: Re: PrintForm in Hight quality
- Next by Date: Re: Error when attempting to open files
- Previous by thread: Re: Error when attempting to open files
- Next by thread: Re: Error when attempting to open files
- Index(es):
Relevant Pages
|