2016-10-24 10 views
1

にメタデータ抽出器を使用してカスタムXMPメタデータを取得します。私はFile -> FileInfoの下にチェックしてPhotoshopで見ることができます。私の質問は、どのように私のC#プロジェクトのメタデータ抽出ライブラリを使用してこのデータにアクセスできますか?私は次のコードを使用すると、私は、ディレクトリの任意の内部で追加された新しいメタデータが表示されない:は、私が使用してフォトショップ.jsxのスクリプトを使用して、いくつかのXMPメタデータを書いていますC#の

FileStream OriginalFile = new FileStream("C:\\Users\\av\\Desktop\\test.tif", FileMode.Open, FileAccess.Read, FileShare.Read); IEnumerable<MetadataExtractor.Directory> directories = ImageMetadataReader.ReadMetadata(OriginalFile);

編集:私はすべてのプロパティをループすることが可能ですが、私が何をしようとすると

var xmpDirectory = ImageMetadataReader.ReadMetadata("path/test.tif").OfType<XmpDirectory>().FirstOrDefault(); xmpDirectory.XmpMeta.GetProperty("http://ns.adobe.com/xap/1.0/mm/xmpMM:DerivedForm/", "stRef:documentID")

私は例外を取得します。このプロパティは、Photoshopで見ると表示されます。

xmp data in photoshop

答えて

0

XMPデータがXmpDirectoryに格納されています。

var xmpDirectory = ImageMetadataReader.ReadMetadata("path\test.tif") 
    .OfType<XmpDirectory>().FirstOrDefault(); 

ただし、me​​tadata-extractorのXMPデータは、他のディレクトリの標準タグ/値形式に従っていないことに注意してください。代わりに、そのデータを検査するためにディレクトリのXmpMetaプロパティにアクセスする必要があります。

その後、似たコードを書くことができます:

foreach (var property in xmpDirectory.XmpMeta.Properties) 
    Console.WriteLine($"Path={property.Path} Namespace={property.Namespace} " + 
         "Value={property.Value}"); 

いくつかのより多くの議論hereとXMPライブラリhereの詳細については。

+0

XmpDirectoryはどこですか? XmpCoreやMetadataExtractorの一部ではないようです。 – AkVenu

+0

申し訳ありません。見つけた。 – AkVenu

+0

これは最終的にあなたのためにうまくいきましたか? –

関連する問題