【问题标题】:How can I modify an XMP meta of a file?如何修改文件的 XMP 元数据?
【发布时间】:2022-11-02 10:10:37
【问题描述】:

我有兴趣看看我是否可以在图像文件中修改一些 XMP。我正在使用以下代码:

        var items = MetadataExtractor.ImageMetadataReader.ReadMetadata(_filename);
        foreach (var item in items)
        {
            if(item.Name == "XMP")
            {
                var y = new XmpCore.Impl.XmpMeta();
                var xmp = item as MetadataExtractor.Formats.Xmp.XmpDirectory;
                foreach(var xd in xmp.XmpMeta.Properties)
                {
                    
                    if(xd.Path == "drone-dji:AbsoluteAltitude")
                    {
                        var alt = Convert.ToDecimal(xd.Value.Substring(1,xd.Value.Length-1));
                        alt -= 100;
                        xmp.XmpMeta.SetProperty(xd.Namespace, xd.Path, alt.ToString());
                        
                    }
                }

                xmp.SetXmpMeta(xmp.XmpMeta);
            }
        }

我知道我遗漏了一些非常明显的东西,但我对这个库的了解还不够,无法弄清楚。

没有出现异常,但是当我打开文件时,XMP 字段仍然相同。当我在设置属性后遍历 xmp 属性时,它确实反映正确,但是当我结束程序时,文件保持不变。我确定与写回图像路径有关,但我不知道我在这个库中的哪个位置执行此操作。任何帮助将不胜感激。

【问题讨论】:

    标签: metadata-extractor


    【解决方案1】:

    MetadataExtractor 不支持修改文件。如您所示,您可以更新数据结构,但无法将这些更改写回原始文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多