我有文件处理器从tiff文件中提取缩略图和大图像。
但我得到“文件已在使用”且“GDI +中出现一般错误”错误最常见。
有三个基本功能:
文件流用于所有三个操作。
有没有办法可以使用文件流一次,将文件的副本保存在内存中并释放文件供其他用途。
我试过了:
using (FileStream fs = new FileStream(path, FileMode.Open, FileAccess.ReadWrite))
{
photo = Image.FromStream(fs, true, false);
fs.Flush();
fs.Close();
}
using (photo)
{
//dummy hight and width passed to function.
generateThumbNails(photo,1,90,90);
System.Drawing.Imaging.FrameDimension dimention = new FrameDimension(photo.FrameDimensionsList[0]);
total = photo.GetFrameCount(dimention);
photo.Dispose();
}
generateThumbNails函数:
public static Bitmap GenerateThumbNails(System.Drawing.Image img, int curPageNo, int width, int height)
{
System.Drawing.Imaging.FrameDimension dimention = new FrameDimension(img.FrameDimensionsList[0]);
img.SelectActiveFrame(dimention, curPageNo);
Bitmap bmp = new Bitmap(width, height);
Graphics g = Graphics.FromImage(bmp);
g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
g.DrawImage(img, 0, 0, width, height);
g.Dispose();
return bmp;
}
但是我在下一行重新调整图像大小时得到“GDI +中发生了一般错误”:
g.DrawImage(img, 0, 0, width, height);