ImageMagick C#如何添加JPEG EXIF标记

ImageMagick C#如何添加JPEG EXIF标记,c#,imagemagick,imagemagick.net,C#,Imagemagick,Imagemagick.net,在VS2013框架4.6中使用.Net的ImageMagick 8 我正在尝试向jpeg图像添加exif标记 我的代码: var exif = new ExifProfile(); exif.SetValue(ExifTag.Artist, "SM"); exif.SetValue(ExifTag.OwnerName, "ownerexample.com"); exif.SetValue(ExifTag.XPKeywords, "one two three"); 问题是最后一行抛出了以下内容:

在VS2013框架4.6中使用.Net的ImageMagick 8

我正在尝试向jpeg图像添加exif标记

我的代码:

var exif = new ExifProfile();
exif.SetValue(ExifTag.Artist, "SM");
exif.SetValue(ExifTag.OwnerName, "ownerexample.com");
exif.SetValue(ExifTag.XPKeywords, "one two three");
问题是最后一行抛出了以下内容: “exif值应为数组”

此外,将字符串转换为字符串数组或字节数组也不起作用

  • 我是否使用正确的标签(ExifTag.XPKeyWords)将标签添加到jpeg
  • 如果我是对的,那么使用ImageMagick向jpeg添加标记的正确语法是什么

    • 没有ImageMagick的第8版,我怀疑您正在使用。出现异常是因为
      XPKeywords
      应该是字节数组而不是字符串。你应该这样做:

      Encoding.UTF8.GetBytes("one two three");
      
      您可以使用以下代码将配置文件添加到图像中:

      image.AddProfile(exif);
      

      您的操作将对图像进行解码和编码。如果您只想按照@fmw42的建议更改exif数据,那么像exiftool这样的工具可能会更好。

      Imagemagick无法将exif标记保存为我所知的任何图像格式(至少在命令行模式下)。它只能读它们。例如,您需要使用EXIFTOOL将标记保存到图像中。没有Imagemagick 8。当前版本是7.0.7.2对不起,我的错,我使用的是Magick.NET-Q8-AnyCPU版本7.0.6.102我使用的是Magick.NET-Q8-AnyCPU版本7.0.6.102,这个解决方案非常有效,谢谢。