2016-10-24 7 views
1

에서 메타 데이터 추출을 사용하여 사용자 정의 XMP 메타 데이터 : 다음얻기 내가 사용 포토샵 .jsx 스크립트를 사용하여 일부 XMP 메타 데이터를 작성하고 C#을

var xmp = new XMPMeta(activeDocument.xmpMetadata.rawData); XMPMeta.registerNamespace(nameSpace, nsPrefix);

이 새로운 네임 스페이스에 일부 데이터를 추가. File -> FileInfo 아래에서 확인하여 Photoshop에서 볼 수 있습니다. 내 질문은 어떻게 내 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(); 

그러나 metadata-extractor의 XMP 데이터는 다른 디렉토리의 표준 태그/값 형식을 따르지 않습니다. 대신 해당 데이터를 검사하려면 디렉토리의 XmpMeta 속성에 액세스해야합니다.

당신은 다음과 유사한 코드를 작성할 수 있습니다 다음 XMP 라이브러리 here에 대한

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

좀 더 논의 here 더 많은 정보를.

+0

여기서 XmpDirectory는 무엇입니까? XmpCore 또는 MetadataExtractor의 일부가 아닌 것 같습니다. – AkVenu

+0

죄송합니다. 찾았어요. – AkVenu

+0

결국 문제가 해결 되었습니까? –