WPF图像控件和jpg旋转元数据

时间:2017-02-06 21:04:28

标签: c# wpf

我在WPF中使用Image控件遇到了一些问题。

我有一个jpg文件,加载错误的旋转,甚至我在Windows中旋转此图片(右键单击并rotate left/right)应用程序没有变化。

似乎图像中有一些EXIF元数据,它们与错误的图像一起旋转。

我正在从www阅读图片,所以我没有本地文件(我不想拥有它)。以下是我将byte[]转换为BitmapImage的方式:

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;
}

因此有两种处理方式:

  1. 设置Image控件以忽略EXIF元数据
  2. BitmapImage
  3. 中删除EXIF元数据

    你能帮我处理这些吗?

1 个答案:

答案 0 :(得分:0)

查看以下链接中的代码示例。

使用C#和WPF库从图像文件中删除Exif数据: http://www.techmikael.com/2009/07/remove-exif-data-from-image-files-with.html

另一种选择可能是使用RotateTransform旋转Image元素:

How to do rotation around control's center in XAML