2017-02-06 9 views
0

WPFでImageコントロールで問題が発生しています。WPF画像コントロールとjpg回転メタデータ

私は間違ったローテーションでロードする1つのjpgファイルを持っていて、ウィンドウ内でこの画像を回転さえ(右クリックしてrotate left/right)、アプリケーションに変更はありません。

イメージには、間違ったイメージとともに回転するEXIFメタデータがあるようです。

私はwwwからイメージを読んでいるので、私はローカルファイルを持っていない(そして私はそれを持っていない)。ここで私はBitmapImagebyte[]を変換しています方法は次のとおりです。

public static BitmapImage BitmapImageFromByteArray(Byte[] bytes) 
{ 
    MemoryStream stream = new MemoryStream(bytes); 
    BitmapImage image = new BitmapImage(); 
    image.BeginInit(); 
    image.CacheOption = BitmapCacheOption.OnLoad; 
    image.StreamSource = stream; 
    image.EndInit(); 
    stream.Close(); 
    stream.Dispose(); 
    return image; 
} 

だからを扱う2つの方法があります:

  • EXIFメタデータを無視BitmapImage
  • からEXIFメタデータを削除する

    1. が設定Imageを制御

      これらのいずれかを手伝ってもらえますか?

    +0

    を、あなたに'stream.Close()'と 'stream.Dispose()'を同時に呼び出す必要はありません。 1つで十分です。さらに、 'using'ブロックを使用すると、' using(var stream = new MemoryStream(bytes)){...} 'のように自動的にストリームが破棄されます。 – Clemens

    +0

    私は知っている、このコードは、それが最適化されていないように試してトンの後です:) – Tomasz

    +0

    私はリンクにコードを試してみましたか、何が起こったのですか? – mm8

    答えて