public static Metadata ParseXmpDirectory(XmpDirectory directory, Metadata metadata) { var xmpProperties = directory.GetXmpProperties(); // aux https://www.exiv2.org/tags-xmp-aux.html if (xmpProperties.TryGetValue("aux:Lens", out var lensType)) { metadata.Camera.LensModel = lensType; } if (xmpProperties.TryGetValue("aux:SerialNumber", out var lensSerialNumber)) { metadata.Camera.LensSerialNumber = lensSerialNumber; } // exifEX https://www.exiv2.org/tags-xmp-exifEX.html if (xmpProperties.TryGetValue("exifEX:LensMake", out var lensMakeExifEx)) { metadata.Camera.LensMake = lensMakeExifEx; } if (xmpProperties.TryGetValue("exifEX:LensModel", out var lensTypeExifEx)) { metadata.Camera.LensModel = lensTypeExifEx; } if (xmpProperties.TryGetValue("exifEX:LensSerialNumber", out var lensSerialNumberExifEx)) { metadata.Camera.LensSerialNumber = lensSerialNumberExifEx; } return(metadata); }
public void TestGetXmpProperties() { var propertyMap = _directory.GetXmpProperties(); Assert.Equal(179, propertyMap.Count); Assert.True(propertyMap.ContainsKey("photoshop:Country")); Assert.Equal("Deutschland", propertyMap["photoshop:Country"]); Assert.True(propertyMap.ContainsKey("tiff:ImageLength")); Assert.Equal("900", propertyMap["tiff:ImageLength"]); }