写真の撮影日値をJPEG形式で取得する機能があります。NEFNikonraw形式で問題が発生しました。Windows 8では、Windowsエクスプローラーの詳細ビューに列を追加すると、撮影日値が表示されます。
次のコマンドを実行すると、「このコーデックは指定されたプロパティをサポートしていません」というエラーが表示されます。
public string GetDate(FileInfo f)
{
string date;
using (FileStream fs = new FileStream(f.FullName, FileMode.Open, FileAccess.Read, FileShare.Read))
{
BitmapSource img = BitmapFrame.Create(fs);
BitmapMetadata md = (BitmapMetadata)img.Metadata;
date = md.DateTaken;
}
return date;
}
BitmapMetadataのGetQueryメソッドを使用して、同様のSO回答で参照されているこの記事の提案を試しましたが、同じエラーが返されました。使用したコードは次のとおりです。
public string GetDate(FileInfo f)
{
string date;
using (FileStream fs = new FileStream(f.FullName, FileMode.Open, FileAccess.Read, FileShare.Read))
{
BitmapSource img = BitmapFrame.Create(fs);
BitmapMetadata md = (BitmapMetadata)img.Metadata;
object t = Mdata.GetQuery("System.Photo.DateTaken");
}
return date;
}
これをWindows8PCに展開しているので、Windows8または.NET4.5のみのソリューションを気にしません。