使用Magick.NET创建/写入EXIF数据

本文关键字:写入 EXIF 数据 创建 Magick NET 使用 | 更新日期: 2023-09-27 18:14:20

使用基于imagemagick的库Magick。NET在c#中添加EXIF元数据到处理后的JPEG中,该JPEG目前没有EXIF配置文件。创建概要文件的尝试都失败了:

 var newExifProfile = image.GetExifProfile();
 if (newExifProfile == null)
 {
    newExifProfile = new ExifProfile();
 }
 newExifProfile.SetValue(ExifTag.Copyright, "test");

ExifProfile有其他接受流或字节数组的构造函数,当.SetValue()被调用时,不提供一个会创建一个异常:

Object reference not set to an instance of an object.
at ImageMagick.ExifReader.GetBytes(UInt32 length)
at ImageMagick.ExifReader.Read(Byte[] data)
at ImageMagick.ExifProfile.SetValue(ExifTag tag, Object value)

怎么能魔法。NET被用来写EXIF数据?

使用Magick.NET创建/写入EXIF数据

您在Magick中发现了一个bug。NET,这已经修复(https://magick.codeplex.com/workitem/1272)。下一个版本的magic。. NET(6.8.9.601),你将能够这样做:

using (MagickImage image = new MagickImage("logo:"))
{
  profile = new ExifProfile();
  profile.SetValue(ExifTag.Copyright, "Dirk Lemstra");
  image.AddProfile(profile);
  image.Write("logo.withexif.jpg");
}