我一直在寻找一种从C#中的JPEG文件中读取元数据(具体来说是日期)的一种体面的方式,并且稍稍延伸一些.据我所知,现有的信息显示如下代码:
BitmapMetadata bmd = (BitmapMetadata)frame.Metadata; string a1 = (string)bmd.GetQuery("/app1/ifd/exif:{uint=36867}");
但是在我的无知中,我不知道GetQuery()将返回的元数据是什么,还是要传递什么.
我想先尝试读取XMP,如果XMP不存在,则返回EXIF.有没有一个这样做的简单方法?
谢谢.
解决方法
以下似乎很好,但如果有坏事,我会感谢任何意见.
public string GetDate(FileInfo f) { using(FileStream fs = new FileStream(f.FullName,FileMode.Open,FileAccess.Read,FileShare.Read)) { BitmapSource img = BitmapFrame.Create(fs); BitmapMetadata md = (BitmapMetadata)img.Metadata; string date = md.DateTaken; Console.WriteLine(date); return date; } }