.net WPF中的BitmapImage不锁定文件
我使用: 这是不可能的 并且文件仍被锁定以在硬盘上覆盖。知道如何解锁吗.net WPF中的BitmapImage不锁定文件,.net,wpf,vb.net,bitmapimage,locked,.net,Wpf,Vb.net,Bitmapimage,Locked,我使用: 这是不可能的 并且文件仍被锁定以在硬盘上覆盖。知道如何解锁吗 关于如您链接到的问题所示,您需要调用BeginInit和EndInit,就像这样,并设置URI源属性: Dim bmi As New BitmapImage(New Uri(fiInfo.FullName, UriKind.Absolute)) bmi.CacheOption = BitmapCacheOption.OnLoad 从文件中读取位图图像,然后用内存流重写它: Dim bmi As New BitmapImag
关于如您链接到的问题所示,您需要调用BeginInit和EndInit,就像这样,并设置URI源属性:
Dim bmi As New BitmapImage(New Uri(fiInfo.FullName, UriKind.Absolute))
bmi.CacheOption = BitmapCacheOption.OnLoad
从文件中读取
位图图像
,然后用内存流
重写它:
Dim bmi As New BitmapImage()
bmi.BeginInit()
bmi.CacheOption = BitmapCacheOption.OnLoad
bmi.UriSource = New Uri(fiInfo.FullName, UriKind.Absolute)
bmi.EndInit()
我有一个类似的问题,我用这个方法解决了: (这是答案的个性化) 您可以按如下方式打开图像:
public static BitmapImage BitmapFromUri(Uri source)
{
var bitmap = new BitmapImage();
bitmap.BeginInit();
bitmap.UriSource = source;
bitmap.CacheOption = BitmapCacheOption.OnLoad;
bitmap.EndInit();
return bitmap;
}
加载图像后,它会立即释放图像
希望能有帮助 还有一些内存问题需要考虑。再见,谢谢。你想让我说,如果你的链接真的不可能,不要尝试缓存所有文件吗?谢谢你的快速回复,关于我的关键字和VB而不是C#!现在效果很好!有没有办法严格使用XAML来实现这一点。感谢Navid的快速回复。据我所知,这将起作用。我现在使用的是
bmi.EndInit()
methode+OnLoad
,这在我的例子中稍微简单一点。现在,谁拥有MemoryStream对象实例并负责处理它?无论如何。。。如何解锁文件并将其删除?
BitmapFrame.Create(new Uri(filePath), BitmapCreateOptions.None, BitmapCacheOption.OnLoad);
public static BitmapImage BitmapFromUri(Uri source)
{
var bitmap = new BitmapImage();
bitmap.BeginInit();
bitmap.UriSource = source;
bitmap.CacheOption = BitmapCacheOption.OnLoad;
bitmap.EndInit();
return bitmap;
}
BitmapImage bimg = BitmapFromUri(new Uri(some_URI));