2015-06-26 21 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是上decoder.Frames [0] .Metadata