2015-06-26 8 views
0

Мне нужно извлечь некоторые метаданные для системы.Извлечение идентификатора задания/передачи из изображения в C#

У меня уже есть следующий код, который работает для всех других атрибутов метаданных, которые мне нужны для доступа.

using (Stream stream = new FileStream(imagePhysicalPath, FileMode.Open, FileAccess.Read, FileShare.Read)) 
{ 
    var decoder = new JpegBitmapDecoder(stream, BitmapCreateOptions.None, BitmapCacheOption.None); 
    var metadata = decoder.Metadata ?? decoder.Frames[0].Metadata as BitmapMetadata; 

    if (metadata != null) 
    { 
     object job_identifier = metadata.GetQuery("/xmp/photoshop:TransmissionReference"); 
    } 
} 

Однако он не работает для Идентификатора задания/передачи. Как я могу прочитать эти данные из изображения?

ответ

0

решение заключается в использовании этого запроса: /app13/irb/8bimiptc/iptc/{str=Original Transmission Reference}

using (Stream stream = new FileStream(imagePhysicalPath, FileMode.Open, FileAccess.Read, FileShare.Read)) 
{ 
    var decoder = new JpegBitmapDecoder(stream, BitmapCreateOptions.None, BitmapCacheOption.None); 
    var metadata = decoder.Frames[0].Metadata as BitmapMetadata; 

    if (metadata != null) 
    { 
     object job_identifier = metadata.GetQuery("/app13/irb/8bimiptc/iptc/{str=Original Transmission Reference}"); 
    } 
} 
0

Я бы сказал, что проблема в том,

  1. переменных метаданных держит значение для decode.Metadata, потому что это не пустой
  2. метаданных для /XMP/Photoshop: TransmissionReference является на декодер.Фрамы [0] .Метаданта