0

我正在处理文件管理器项目。如果文件是图像类型,我需要生成缩略图。我可以通过使用IHttpHandlerwith 方法 得到

  Sytem.Drawing.Image.GetThumbnailImage(),

这是一些代码

Hashtable ht;
            ht = new Hashtable();
            using (FileStream fInfo = new FileStream(context.Server.MapPath(url), FileMode.Open))
            {
                byte[] bFile;
                bFile = GenerateThumbnail(fInfo, XLen, YLen);
                ht.Add(id, bFile);
                fInfo.Close();

                Byte[] arrImg = (byte[])ht[id];
                context.Response.Clear();
                context.Response.ContentType = "image/jpeg";
                context.Response.BinaryWrite(arrImg);
                context.Response.End();
            }
    private byte[] GenerateThumbnail(Stream fStream, string xLen, string yLen)
    {
        using (Image img = Image.FromStream(fStream))
        {
            Image thumbnailImage = img.GetThumbnailImage(int.Parse(xLen), int.Parse(yLen), new Image.GetThumbnailImageAbort(ThumbnailCallback), IntPtr.Zero);

            using (MemoryStream imageStream = new MemoryStream())
            {
                thumbnailImage.Save(imageStream,System.Drawing.Imaging.ImageFormat.Jpeg);

                byte[] imageContent = new Byte[imageStream.Length];
                imageStream.Position = 0;
                imageStream.Read(imageContent, 0, (int)imageStream.Length);
                return imageContent;
            }
        }
    }

问题

新上传的关于生成拇指投掷期望的文件:被另一个进程使用,有时它会显示缩略图。问:我想在哪里关闭流?

4

0 回答 0