2011-09-14 8 views
0

wpfのBitmapImageに問題があります。私はそれを作成すると、PresentationCore.resourcesアセンブリが見つからないというfilenotfound例外が発生します。しかし、私は、私の参照リストに追加したのだが、まだ同じ例外工事中のBitmapImage filenotfound例外(PresentationCore.resources)

Uri filename = new Uri(@"D:\barcode_zwart_wit.jpg", UriKind.Absolute); 
BitmapImage image = new BitmapImage(filename); //<-- FileNotFound Exception 
  • 画像URIが正しいことをスローします。
  • 画像が他の場所で開かれていない
  • 私はPresentationCore.resourcesのバージョンを確認しましたが、問題はありません。
  • 行は、ユーザーコントロールのコンストラクタで最初に起動されるプロパティの設定ツールです。
  • のVisual Studio 2010、.NET v4の

誰もが問題何任意のアイデアを持っていますか? PresentationCore.resourcesにはわからない依存関係はありますか?

+0

「ファイル名」が初期化後にどのような値に設定されているかを確認できます。ファイルパスに何か問題があると思われます。 –

+0

が既に存在していた場合、ファイル名が間違っていると、別の例外が発生します。 – hcb

+0

私はそれが機能しない理由を考えることができます1.場所へのアクセスなし2.ファイル形式はサポートされていません3.画像は他のアプリケーションによって変更されています。誰かがあなたの質問に答えるための詳細を投稿する必要があるかもしれません –

答えて

0

私はAppDomain.CurrentDomain.AssemblyResolveを使用して解決しました。特定のアセンブリが見つからない場合に呼び出されるイベントです。コンストラクタで

AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(CurrentDomain_AssemblyResolve); 

CurrentDomain_AssemblyResolve:

Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args) 
{ 
    string missingAssemblyName = args.Name.Remove(args.Name.IndexOf(','); 
    if (missingAssemblyName == "PresentationCore.resources") 
    { 
     string s = "C:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\PresentationCore.resources.dll"; 
     return Assembly.LoadFile(s); 
    } 
    return; 
} 
1

問題は、画像のカラープロファイルが使用できないことであるかもしれません。私は.jpg画像の数と同じ問題を持っていたし、これはそれを解決し

var bmp = new BitmapImage(); 
bmp.BeginInit(); 
bmp.CreateOptions = BitmapCreateOptions.IgnoreColorProfile; 
bmp.UriSource = uri; 
bmp.EndInit(); 
// Use the bmp variable for further processing and dispose it 

:以下のようにカラープロファイル情報を無視するBitmapImage.CreateOptionsプロパティを使用します。

関連する問題