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.