0

我需要为系统提取一些元数据。

我已经有以下代码,它适用于我需要访问的所有其他元数据属性。

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");
    }
}

但是,它不适用于作业标识符/传​​输参考。如何从图像中读取这些数据?

4

2 回答 2

0

我会说问题是

  1. 您的变量元数据持有decode.Metadata的值,因为它不为空
  2. /xmp/photoshop:TransmissionReference的元数据位于decoder.Frames[0].Metadata
于 2015-06-27T09:59:49.063 回答
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}");
    }
}
于 2015-07-10T17:18:42.500 回答