当前位置:  开发笔记 > 前端 > 正文

从WPF中的图像中读取元数据

如何解决《从WPF中的图像中读取元数据》经验,为你挑选了1个好方法。

我知道WPF允许你使用需要WIC编解码器查看的图像(为了争论,比如数码相机RAW文件); 但是我只能看到它可以让你本地显示图像,但我无法看到获取元数据(例如,曝光时间).

显然可以这样做,因为Windows资源管理器显示它,但这是通过.net API公开的,或者你认为它只是调用本机COM接口



1> Kent Boogaar..:

看看我的Intuipic项目.特别是BitmapOrientationConverter类,它读取元数据以确定图像的方向:

using (FileStream fileStream = new FileStream(path, FileMode.Open, FileAccess.Read))
{
    BitmapFrame bitmapFrame = BitmapFrame.Create(fileStream, BitmapCreateOptions.DelayCreation, BitmapCacheOption.None);
    BitmapMetadata bitmapMetadata = bitmapFrame.Metadata as BitmapMetadata;

    if ((bitmapMetadata != null) && (bitmapMetadata.ContainsQuery(_orientationQuery)))
    {
        object o = bitmapMetadata.GetQuery(_orientationQuery);

        if (o != null)
        {
            //refer to http://www.impulseadventure.com/photo/exif-orientation.html for details on orientation values
            switch ((ushort) o)
            {
                case 6:
                    return 90D;
                case 3:
                    return 180D;
                case 8:
                    return 270D;
            }
        }
    }
}


对于通过谷歌来到这里的其他人,肯特上面的例子中的`_orientationQuery`是"System.Photo.Orientation".
推荐阅读
落单鸟人
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有