Jpeg为null属性写入xmp

本文关键字:xmp 属性 null Jpeg | 更新日期: 2023-09-27 18:24:30

我有一个程序可以读取C#中的xmp数据,但有些图像的某些属性为NULL,当我试图为NULL属性写入xmp数据时,它会出现异常:

找不到属性:HRESULT中出现异常:0x88982F40

是否可以为NULL属性设置值?

// Credit Status = Copyrighted
metaData.SetQuery("/xmp/xmpRights:Marked", "True");
//overwriting instructions with static text
metaData.SetQuery("/xmp/photoshop:Instructions", Constants.InstructionsText);
var usageTerms = metaData.GetQuery("/xmp/xmpRights:UsageTerms/x-default");
if (string.IsNullOrEmpty(Convert.ToString(usageTerms)))
    metaData.SetQuery("/xmp/xmpRights:UsageTerms/x-default", Constants.UsageTermText);

基本上我需要一个脚本,通过它我可以在Jpeg中创建一个新的XMP属性?

Jpeg为null属性写入xmp

我找到了一种方法,希望它能有所帮助!我在MSDN评论上找到了答案

if (!metadata.ContainsQuery(@"/xmp/photoshop:Instructions"))
     metadata.SetQuery(@"/xmp/{wstr=http://ns.adobe.com/photoshop/1.0/}:Instructions", instructions);
if (metadata.ContainsQuery("/xmp/photoshop:Marked"))
     metadata.SetQuery(@"/xmp/{wstr=http://ns.adobe.com/photoshop/1.0/}:Marked", CreditStatus);
if (metadata.ContainsQuery("/xmp/xmpRights:UsageTerms/x-default"))
{
     metadata.SetQuery(@"/xmp/{wstr=http://ns.adobe.com/xap/1.0/rights/}:UsageTerms",
                                          new BitmapMetadata("xmpalt"));
     metadata.SetQuery(@"/xmp/xmpRights:UsageTerms/x-default", usageTerms);
}