当我尝试保存之前加载的位图源(BitmapSource
)时,会抛出 System.IO.IOException
,指出另一个进程正在访问该文件,因此无法打开文件流。
如果只进行保存操作而没有进行加载操作,则一切正常。
加载代码如下:
BitmapImage image = new BitmapImage();
image.BeginInit();
image.UriSource = uri;
if (decodePixelWidth > 0)
image.DecodePixelWidth = decodePixelWidth;
image.EndInit();
代码的保存:
using (FileStream fileStream = new FileStream(Directory + "\\" + FileName + ".jpg", FileMode.Create))
{
JpegBitmapEncoder encoder = new JpegBitmapEncoder();
encoder.Frames.Add(BitmapFrame.Create((BitmapImage)image));
encoder.QualityLevel = 100;
encoder.Save(fileStream);
}
看起来在加载图像数据后,只要打开它的应用程序仍在运行,该文件就会被锁定,无法被覆盖。有什么解决办法吗?非常感谢任何解决方案。