ん:これはUse OnLoad 、ファイルがまだハードディスクに上書きするのBitmapImageは、私が使用したロックファイル
Dim bmi As New BitmapImage(New Uri(fiInfo.FullName, UriKind.Absolute))
bmi.CacheOption = BitmapCacheOption.OnLoad
ロックされていません。任意のアイデアをロック解除する方法?
よろしく
ん:これはUse OnLoad 、ファイルがまだハードディスクに上書きするのBitmapImageは、私が使用したロックファイル
Dim bmi As New BitmapImage(New Uri(fiInfo.FullName, UriKind.Absolute))
bmi.CacheOption = BitmapCacheOption.OnLoad
ロックされていません。任意のアイデアをロック解除する方法?
よろしく
あなたにリンクして質問に示すように、あなたはBeginInitのとEndInitを呼び出す必要がある、などのようにだけでなく、UriSourceプロパティを設定したい:
Dim bmi As New BitmapImage()
bmi.BeginInit()
bmi.CacheOption = BitmapCacheOption.OnLoad
bmi.UriSource = New Uri(fiInfo.FullName, UriKind.Absolute)
bmi.EndInit()
C#の代わりにキーワードとVBに関するご返信ありがとうございます!今すぐ素晴らしい作品! – Nasenbaer
XAMLを使用してこれを厳密に行う方法はありますか? – TrustyCoder
ファイルからBitmapImage
を読みますそしてMemoryStream
でそれを書き換える:私が持っていたとして
MemoryStream ms = new MemoryStream();
BitmapImage bi = new BitmapImage();
byte[] bytArray = File.ReadAllBytes(@"test.jpg");
ms.Write(bytArray, 0, bytArray.Length);ms.Position = 0;
bi.BeginInit();
bi.StreamSource = ms;
bi.EndInit();
image.Source = bi;
BitmapFrame.Create(new Uri(filePath), BitmapCreateOptions.None, BitmapCacheOption.OnLoad);
imilar問題と私は、このメソッドを使用して解く: (それは答えhereのパーソナライゼーションです)
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));
そして、それはそれをロードした後すぐに画像を解放。
希望すると助かります!
また、メモリの問題もあります。 http://stackoverflow.com/questions/6271891/net-memory-issues-loading-40-images-memory-not-reclaimed-potentially-due-to-l/6271982#6271982 – Oppositional
を参照してください。本当にあなたのリンクではできない場合はすべてのファイルをキャッシュしようとしないように言いたいですか? – Nasenbaer