From 89bb41da3361b3591395395f9298e558136acd09 Mon Sep 17 00:00:00 2001 From: dirk Date: Mon, 7 Nov 2016 21:12:25 +0100 Subject: [PATCH] Added extra exif tags. --- src/ImageSharp/Profiles/Exif/ExifTag.cs | 390 +++++++++++++++++++++ src/ImageSharp/Profiles/Exif/ExifValue.cs | 71 +++- src/ImageSharp/Profiles/Exif/ExifWriter.cs | 102 +++++- 3 files changed, 546 insertions(+), 17 deletions(-) diff --git a/src/ImageSharp/Profiles/Exif/ExifTag.cs b/src/ImageSharp/Profiles/Exif/ExifTag.cs index 4127a34ddc..43f725f0c6 100644 --- a/src/ImageSharp/Profiles/Exif/ExifTag.cs +++ b/src/ImageSharp/Profiles/Exif/ExifTag.cs @@ -27,6 +27,28 @@ namespace ImageSharp /// GPSIFDOffset = 0x8825, + /// + /// SubfileType + /// + [ExifTagDescription((uint)0, "Full-resolution Image")] + [ExifTagDescription((uint)1, "Reduced-resolution image")] + [ExifTagDescription((uint)2, "Single page of multi-page image")] + [ExifTagDescription((uint)3, "Single page of multi-page reduced-resolution image")] + [ExifTagDescription((uint)4, "Transparency mask")] + [ExifTagDescription((uint)5, "Transparency mask of reduced-resolution image")] + [ExifTagDescription((uint)6, "Transparency mask of multi-page image")] + [ExifTagDescription((uint)7, "Transparency mask of reduced-resolution multi-page image")] + [ExifTagDescription((uint)0x10001, "Alternate reduced-resolution image ")] + SubfileType = 0x00FE, + + /// + /// OldSubfileType + /// + [ExifTagDescription((ushort)1, "Full-resolution Image")] + [ExifTagDescription((ushort)2, "Reduced-resolution image")] + [ExifTagDescription((ushort)3, "Single page of multi-page image")] + OldSubfileType = 0x00FF, + /// /// ImageWidth /// @@ -279,6 +301,11 @@ namespace ImageSharp /// PageNumber = 0x0129, + /// + /// ColorResponseUnit + /// + ColorResponseUnit = 0x012C, + /// /// TransferFunction /// @@ -397,6 +424,9 @@ namespace ImageSharp /// /// ExtraSamples /// + [ExifTagDescription((ushort)0, "Unspecified")] + [ExifTagDescription((ushort)1, "Associated Alpha")] + [ExifTagDescription((ushort)2, "Unassociated Alpha")] ExtraSamples = 0x0152, /// @@ -512,6 +542,11 @@ namespace ImageSharp /// DefaultImageColor = 0x01B2, + /// + /// T82ptions + /// + T82ptions = 0x01B3, + /// /// JPEGProc /// @@ -591,11 +626,36 @@ namespace ImageSharp /// XMP = 0x02BC, + /// + /// Rating + /// + Rating = 0x4746, + + /// + /// RatingPercent + /// + RatingPercent = 0x4749, + /// /// ImageID /// ImageID = 0x800D, + /// + /// CFARepeatPatternDim + /// + CFARepeatPatternDim = 0x828D, + + /// + /// CFAPattern2 + /// + CFAPattern2 = 0x828E, + + /// + /// BatteryLevel + /// + BatteryLevel = 0x828F, + /// /// Copyright /// @@ -611,6 +671,76 @@ namespace ImageSharp /// FNumber = 0x829D, + /// + /// MDFileTag + /// + MDFileTag = 0x82A5, + + /// + /// MDScalePixel + /// + MDScalePixel = 0x82A6, + + /// + /// MDLabName + /// + MDLabName = 0x82A8, + + /// + /// MDSampleInfo + /// + MDSampleInfo = 0x82A9, + + /// + /// MDPrepDate + /// + MDPrepDate = 0x82AA, + + /// + /// MDPrepTime + /// + MDPrepTime = 0x82AB, + + /// + /// MDFileUnits + /// + MDFileUnits = 0x82AC, + + /// + /// PixelScale + /// + PixelScale = 0x830E, + + /// + /// IntergraphPacketData + /// + IntergraphPacketData = 0x847E, + + /// + /// IntergraphRegisters + /// + IntergraphRegisters = 0x847F, + + /// + /// IntergraphMatrix + /// + IntergraphMatrix = 0x8480, + + /// + /// ModelTiePoint + /// + ModelTiePoint = 0x8482, + + /// + /// SEMInfo + /// + SEMInfo = 0x8546, + + /// + /// ModelTransform + /// + ModelTransform = 0x85D8, + /// /// ImageLayer /// @@ -646,6 +776,74 @@ namespace ImageSharp /// OECF = 0x8828, + /// + /// Interlace + /// + Interlace = 0x8829, + + /// + /// TimeZoneOffset + /// + TimeZoneOffset = 0x882A, + + /// + /// SelfTimerMode + /// + SelfTimerMode = 0x882B, + + /// + /// SensitivityType + /// + [ExifTagDescription((ushort)0, "Unknown")] + [ExifTagDescription((ushort)1, "Standard Output Sensitivity")] + [ExifTagDescription((ushort)2, "Recommended Exposure Index")] + [ExifTagDescription((ushort)3, "ISO Speed")] + [ExifTagDescription((ushort)4, "Standard Output Sensitivity and Recommended Exposure Index")] + [ExifTagDescription((ushort)5, "Standard Output Sensitivity and ISO Speed")] + [ExifTagDescription((ushort)6, "Recommended Exposure Index and ISO Speed")] + [ExifTagDescription((ushort)7, "Standard Output Sensitivity, Recommended Exposure Index and ISO Speed")] + SensitivityType = 0x8830, + + /// + /// StandardOutputSensitivity + /// + StandardOutputSensitivity = 0x8831, + + /// + /// RecommendedExposureIndex + /// + RecommendedExposureIndex = 0x8832, + + /// + /// ISOSpeed + /// + ISOSpeed = 0x8833, + + /// + /// ISOSpeedLatitudeyyy + /// + ISOSpeedLatitudeyyy = 0x8834, + + /// + /// ISOSpeedLatitudezzz + /// + ISOSpeedLatitudezzz = 0x8835, + + /// + /// FaxRecvParams + /// + FaxRecvParams = 0x885C, + + /// + /// FaxSubaddress + /// + FaxSubaddress = 0x885D, + + /// + /// FaxRecvTime + /// + FaxRecvTime = 0x885E, + /// /// ExifVersion /// @@ -661,6 +859,21 @@ namespace ImageSharp /// DateTimeDigitized = 0x9004, + /// + /// OffsetTime + /// + OffsetTime = 0x9010, + + /// + /// OffsetTimeOriginal + /// + OffsetTimeOriginal = 0x9011, + + /// + /// OffsetTimeDigitized + /// + OffsetTimeDigitized = 0x9012, + /// /// ComponentsConfiguration /// @@ -778,11 +991,88 @@ namespace ImageSharp /// FocalLength = 0x920A, + /// + /// FlashEnergy2 + /// + FlashEnergy2 = 0x920B, + + /// + /// SpatialFrequencyResponse2 + /// + SpatialFrequencyResponse2 = 0x920C, + + /// + /// Noise + /// + Noise = 0x920D, + + /// + /// FocalPlaneXResolution2 + /// + FocalPlaneXResolution2 = 0x920E, + + /// + /// FocalPlaneYResolution2 + /// + FocalPlaneYResolution2 = 0x920F, + + /// + /// FocalPlaneResolutionUnit2 + /// + [ExifTagDescription((ushort)1, "None")] + [ExifTagDescription((ushort)2, "Inches")] + [ExifTagDescription((ushort)3, "Centimeter")] + [ExifTagDescription((ushort)4, "Millimeter")] + [ExifTagDescription((ushort)5, "Micrometer")] + FocalPlaneResolutionUnit2 = 0x9210, + + /// + /// ImageNumber + /// + ImageNumber = 0x9211, + + /// + /// SecurityClassification + /// + [ExifTagDescription("C", "Confidential")] + [ExifTagDescription("R", "Restricted")] + [ExifTagDescription("S", "Secret")] + [ExifTagDescription("T", "Top Secret")] + [ExifTagDescription("U", "Unclassified")] + SecurityClassification = 0x9212, + + /// + /// ImageHistory + /// + ImageHistory = 0x9213, + /// /// SubjectArea /// SubjectArea = 0x9214, + /// + /// ExposureIndex2 + /// + ExposureIndex2 = 0x9215, + + /// + /// TIFFEPStandardID + /// + TIFFEPStandardID = 0x9216, + + /// + /// SensingMethod + /// + [ExifTagDescription((ushort)1, "Not defined")] + [ExifTagDescription((ushort)2, "One-chip color area")] + [ExifTagDescription((ushort)3, "Two-chip color area")] + [ExifTagDescription((ushort)4, "Three-chip color area")] + [ExifTagDescription((ushort)5, "Color sequential area")] + [ExifTagDescription((ushort)7, "Trilinear")] + [ExifTagDescription((ushort)8, "Color sequential linear")] + SensingMethod2 = 0x9217, + /// /// MakerNote /// @@ -808,6 +1098,66 @@ namespace ImageSharp /// SubsecTimeDigitized = 0x9292, + /// + /// ImageSourceData + /// + ImageSourceData = 0x935C, + + /// + /// AmbientTemperature + /// + AmbientTemperature = 0x9400, + + /// + /// Humidity + /// + Humidity = 0x9401, + + /// + /// Pressure + /// + Pressure = 0x9402, + + /// + /// WaterDepth + /// + WaterDepth = 0x9403, + + /// + /// Acceleration + /// + Acceleration = 0x9404, + + /// + /// CameraElevationAngle + /// + CameraElevationAngle = 0x9405, + + /// + /// XPTitle + /// + XPTitle = 0x9C9B, + + /// + /// XPComment + /// + XPComment = 0x9C9C, + + /// + /// XPAuthor + /// + XPAuthor = 0x9C9D, + + /// + /// XPKeywords + /// + XPKeywords = 0x9C9E, + + /// + /// XPSubject + /// + XPSubject = 0x9C9F, + /// /// FlashpixVersion /// @@ -999,6 +1349,46 @@ namespace ImageSharp /// ImageUniqueID = 0xA420, + /// + /// OwnerName + /// + OwnerName = 0xA430, + + /// + /// SerialNumber + /// + SerialNumber = 0xA431, + + /// + /// LensInfo + /// + LensInfo = 0xA432, + + /// + /// LensMake + /// + LensMake = 0xA433, + + /// + /// LensModel + /// + LensModel = 0xA434, + + /// + /// LensSerialNumber + /// + LensSerialNumber = 0xA435, + + /// + /// GDALMetadata + /// + GDALMetadata = 0xA480, + + /// + /// GDALNoData + /// + GDALNoData = 0xA481, + /// /// GPSVersionID /// diff --git a/src/ImageSharp/Profiles/Exif/ExifValue.cs b/src/ImageSharp/Profiles/Exif/ExifValue.cs index 0cbb1a50be..bd0f2bede6 100644 --- a/src/ImageSharp/Profiles/Exif/ExifValue.cs +++ b/src/ImageSharp/Profiles/Exif/ExifValue.cs @@ -268,14 +268,32 @@ namespace ImageSharp case ExifTag.InkNames: case ExifTag.TargetPrinter: case ExifTag.ImageID: + case ExifTag.MDLabName: + case ExifTag.MDSampleInfo: + case ExifTag.MDPrepDate: + case ExifTag.MDPrepTime: + case ExifTag.MDFileUnits: + case ExifTag.SEMInfo: case ExifTag.SpectralSensitivity: case ExifTag.DateTimeOriginal: case ExifTag.DateTimeDigitized: case ExifTag.SubsecTime: case ExifTag.SubsecTimeOriginal: case ExifTag.SubsecTimeDigitized: - case ExifTag.RelatedSoundFile: + case ExifTag.FaxSubaddress: + case ExifTag.OffsetTime: + case ExifTag.OffsetTimeOriginal: + case ExifTag.OffsetTimeDigitized: + case ExifTag.SecurityClassification: + case ExifTag.ImageHistory: case ExifTag.ImageUniqueID: + case ExifTag.OwnerName: + case ExifTag.SerialNumber: + case ExifTag.LensMake: + case ExifTag.LensModel: + case ExifTag.LensSerialNumber: + case ExifTag.GDALMetadata: + case ExifTag.GDALNoData: case ExifTag.GPSLatitudeRef: case ExifTag.GPSLongitudeRef: case ExifTag.GPSSatellites: @@ -296,6 +314,13 @@ namespace ImageSharp case ExifTag.ClipPath: case ExifTag.VersionYear: case ExifTag.XMP: + case ExifTag.CFAPattern2: + case ExifTag.TIFFEPStandardID: + case ExifTag.XPTitle: + case ExifTag.XPComment: + case ExifTag.XPAuthor: + case ExifTag.XPKeywords: + case ExifTag.XPSubject: case ExifTag.GPSVersionID: exifValue = new ExifValue(tag, ExifDataType.Byte, true); break; @@ -307,6 +332,7 @@ namespace ImageSharp case ExifTag.FreeOffsets: case ExifTag.FreeByteCounts: + case ExifTag.ColorResponseUnit: case ExifTag.TileOffsets: case ExifTag.SMinSampleValue: case ExifTag.SMaxSampleValue: @@ -314,8 +340,11 @@ namespace ImageSharp case ExifTag.JPEGDCTables: case ExifTag.JPEGACTables: case ExifTag.StripRowCounts: + case ExifTag.IntergraphRegisters: + case ExifTag.TimeZoneOffset: exifValue = new ExifValue(tag, ExifDataType.Long, true); break; + case ExifTag.SubfileType: case ExifTag.SubIFDOffset: case ExifTag.GPSIFDOffset: case ExifTag.T4Options: @@ -324,8 +353,18 @@ namespace ImageSharp case ExifTag.YClipPathUnits: case ExifTag.ProfileType: case ExifTag.CodingMethods: + case ExifTag.T82ptions: case ExifTag.JPEGInterchangeFormat: case ExifTag.JPEGInterchangeFormatLength: + case ExifTag.MDFileTag: + case ExifTag.StandardOutputSensitivity: + case ExifTag.RecommendedExposureIndex: + case ExifTag.ISOSpeed: + case ExifTag.ISOSpeedLatitudeyyy: + case ExifTag.ISOSpeedLatitudezzz: + case ExifTag.FaxRecvParams: + case ExifTag.FaxRecvTime: + case ExifTag.ImageNumber: exifValue = new ExifValue(tag, ExifDataType.Long, false); break; @@ -333,6 +372,10 @@ namespace ImageSharp case ExifTag.PrimaryChromaticities: case ExifTag.YCbCrCoefficients: case ExifTag.ReferenceBlackWhite: + case ExifTag.PixelScale: + case ExifTag.IntergraphMatrix: + case ExifTag.ModelTiePoint: + case ExifTag.ModelTransform: case ExifTag.GPSLatitude: case ExifTag.GPSLongitude: case ExifTag.GPSTimestamp: @@ -344,18 +387,28 @@ namespace ImageSharp case ExifTag.YPosition: case ExifTag.XResolution: case ExifTag.YResolution: + case ExifTag.BatteryLevel: case ExifTag.ExposureTime: case ExifTag.FNumber: + case ExifTag.MDScalePixel: case ExifTag.CompressedBitsPerPixel: case ExifTag.ApertureValue: case ExifTag.MaxApertureValue: case ExifTag.SubjectDistance: case ExifTag.FocalLength: + case ExifTag.FlashEnergy2: + case ExifTag.FocalPlaneXResolution2: + case ExifTag.FocalPlaneYResolution2: + case ExifTag.ExposureIndex2: + case ExifTag.Humidity: + case ExifTag.Pressure: + case ExifTag.Acceleration: case ExifTag.FlashEnergy: case ExifTag.FocalPlaneXResolution: case ExifTag.FocalPlaneYResolution: case ExifTag.ExposureIndex: case ExifTag.DigitalZoomRatio: + case ExifTag.LensInfo: case ExifTag.GPSAltitude: case ExifTag.GPSDOP: case ExifTag.GPSSpeed: @@ -382,11 +435,14 @@ namespace ImageSharp case ExifTag.JPEGLosslessPredictors: case ExifTag.JPEGPointTransforms: case ExifTag.YCbCrSubsampling: + case ExifTag.CFARepeatPatternDim: + case ExifTag.IntergraphPacketData: case ExifTag.ISOSpeedRatings: case ExifTag.SubjectArea: case ExifTag.SubjectLocation: exifValue = new ExifValue(tag, ExifDataType.Short, true); break; + case ExifTag.OldSubfileType: case ExifTag.Compression: case ExifTag.PhotometricInterpretation: case ExifTag.Thresholding: @@ -407,9 +463,16 @@ namespace ImageSharp case ExifTag.JPEGProc: case ExifTag.JPEGRestartInterval: case ExifTag.YCbCrPositioning: + case ExifTag.Rating: + case ExifTag.RatingPercent: case ExifTag.ExposureProgram: + case ExifTag.Interlace: + case ExifTag.SelfTimerMode: + case ExifTag.SensitivityType: case ExifTag.MeteringMode: case ExifTag.LightSource: + case ExifTag.FocalPlaneResolutionUnit2: + case ExifTag.SensingMethod2: case ExifTag.Flash: case ExifTag.ColorSpace: case ExifTag.FocalPlaneResolutionUnit: @@ -434,6 +497,9 @@ namespace ImageSharp case ExifTag.ShutterSpeedValue: case ExifTag.BrightnessValue: case ExifTag.ExposureBiasValue: + case ExifTag.AmbientTemperature: + case ExifTag.WaterDepth: + case ExifTag.CameraElevationAngle: exifValue = new ExifValue(tag, ExifDataType.SignedRational, false); break; @@ -445,8 +511,11 @@ namespace ImageSharp case ExifTag.UserComment: case ExifTag.FlashpixVersion: case ExifTag.SpatialFrequencyResponse: + case ExifTag.SpatialFrequencyResponse2: + case ExifTag.Noise: case ExifTag.CFAPattern: case ExifTag.DeviceSettingDescription: + case ExifTag.ImageSourceData: case ExifTag.GPSProcessingMethod: case ExifTag.GPSAreaInformation: exifValue = new ExifValue(tag, ExifDataType.Undefined, true); diff --git a/src/ImageSharp/Profiles/Exif/ExifWriter.cs b/src/ImageSharp/Profiles/Exif/ExifWriter.cs index beb0cfe0e1..f7653b240f 100644 --- a/src/ImageSharp/Profiles/Exif/ExifWriter.cs +++ b/src/ImageSharp/Profiles/Exif/ExifWriter.cs @@ -12,8 +12,10 @@ namespace ImageSharp internal sealed class ExifWriter { - private static readonly ExifTag[] IfdTags = new ExifTag[93] + private static readonly ExifTag[] IfdTags = new ExifTag[127] { + ExifTag.SubfileType, + ExifTag.OldSubfileType, ExifTag.ImageWidth, ExifTag.ImageLength, ExifTag.BitsPerSample, @@ -23,6 +25,7 @@ namespace ImageSharp ExifTag.CellWidth, ExifTag.CellLength, ExifTag.FillOrder, + ExifTag.DocumentName, ExifTag.ImageDescription, ExifTag.Make, ExifTag.Model, @@ -36,29 +39,27 @@ namespace ImageSharp ExifTag.XResolution, ExifTag.YResolution, ExifTag.PlanarConfiguration, + ExifTag.PageName, + ExifTag.XPosition, + ExifTag.YPosition, ExifTag.FreeOffsets, ExifTag.FreeByteCounts, ExifTag.GrayResponseUnit, ExifTag.GrayResponseCurve, + ExifTag.T4Options, + ExifTag.T6Options, ExifTag.ResolutionUnit, + ExifTag.PageNumber, + ExifTag.ColorResponseUnit, + ExifTag.TransferFunction, ExifTag.Software, ExifTag.DateTime, ExifTag.Artist, ExifTag.HostComputer, - ExifTag.ColorMap, - ExifTag.ExtraSamples, - ExifTag.Copyright, - ExifTag.DocumentName, - ExifTag.PageName, - ExifTag.XPosition, - ExifTag.YPosition, - ExifTag.T4Options, - ExifTag.T6Options, - ExifTag.PageNumber, - ExifTag.TransferFunction, ExifTag.Predictor, ExifTag.WhitePoint, ExifTag.PrimaryChromaticities, + ExifTag.ColorMap, ExifTag.HalftoneHints, ExifTag.TileWidth, ExifTag.TileLength, @@ -72,6 +73,7 @@ namespace ImageSharp ExifTag.NumberOfInks, ExifTag.DotRange, ExifTag.TargetPrinter, + ExifTag.ExtraSamples, ExifTag.SampleFormat, ExifTag.SMinSampleValue, ExifTag.SMaxSampleValue, @@ -89,6 +91,7 @@ namespace ImageSharp ExifTag.ModeNumber, ExifTag.Decode, ExifTag.DefaultImageColor, + ExifTag.T82ptions, ExifTag.JPEGProc, ExifTag.JPEGInterchangeFormat, ExifTag.JPEGInterchangeFormatLength, @@ -105,11 +108,42 @@ namespace ImageSharp ExifTag.ReferenceBlackWhite, ExifTag.StripRowCounts, ExifTag.XMP, + ExifTag.Rating, + ExifTag.RatingPercent, ExifTag.ImageID, - ExifTag.ImageLayer + ExifTag.CFARepeatPatternDim, + ExifTag.CFAPattern2, + ExifTag.BatteryLevel, + ExifTag.Copyright, + ExifTag.MDFileTag, + ExifTag.MDScalePixel, + ExifTag.MDLabName, + ExifTag.MDSampleInfo, + ExifTag.MDPrepDate, + ExifTag.MDPrepTime, + ExifTag.MDFileUnits, + ExifTag.PixelScale, + ExifTag.IntergraphPacketData, + ExifTag.IntergraphRegisters, + ExifTag.IntergraphMatrix, + ExifTag.ModelTiePoint, + ExifTag.SEMInfo, + ExifTag.ModelTransform, + ExifTag.ImageLayer, + ExifTag.FaxRecvParams, + ExifTag.FaxSubaddress, + ExifTag.FaxRecvTime, + ExifTag.ImageSourceData, + ExifTag.XPTitle, + ExifTag.XPComment, + ExifTag.XPAuthor, + ExifTag.XPKeywords, + ExifTag.XPSubject, + ExifTag.GDALMetadata, + ExifTag.GDALNoData }; - private static readonly ExifTag[] ExifTags = new ExifTag[56] + private static readonly ExifTag[] ExifTags = new ExifTag[92] { ExifTag.ExposureTime, ExifTag.FNumber, @@ -117,9 +151,21 @@ namespace ImageSharp ExifTag.SpectralSensitivity, ExifTag.ISOSpeedRatings, ExifTag.OECF, + ExifTag.Interlace, + ExifTag.TimeZoneOffset, + ExifTag.SelfTimerMode, + ExifTag.SensitivityType, + ExifTag.StandardOutputSensitivity, + ExifTag.RecommendedExposureIndex, + ExifTag.ISOSpeed, + ExifTag.ISOSpeedLatitudeyyy, + ExifTag.ISOSpeedLatitudezzz, ExifTag.ExifVersion, ExifTag.DateTimeOriginal, ExifTag.DateTimeDigitized, + ExifTag.OffsetTime, + ExifTag.OffsetTimeOriginal, + ExifTag.OffsetTimeDigitized, ExifTag.ComponentsConfiguration, ExifTag.CompressedBitsPerPixel, ExifTag.ShutterSpeedValue, @@ -132,12 +178,30 @@ namespace ImageSharp ExifTag.LightSource, ExifTag.Flash, ExifTag.FocalLength, + ExifTag.FlashEnergy2, + ExifTag.SpatialFrequencyResponse2, + ExifTag.Noise, + ExifTag.FocalPlaneXResolution2, + ExifTag.FocalPlaneYResolution2, + ExifTag.FocalPlaneResolutionUnit2, + ExifTag.ImageNumber, + ExifTag.SecurityClassification, + ExifTag.ImageHistory, ExifTag.SubjectArea, + ExifTag.ExposureIndex2, + ExifTag.TIFFEPStandardID, + ExifTag.SensingMethod2, ExifTag.MakerNote, ExifTag.UserComment, ExifTag.SubsecTime, ExifTag.SubsecTimeOriginal, ExifTag.SubsecTimeDigitized, + ExifTag.AmbientTemperature, + ExifTag.Humidity, + ExifTag.Pressure, + ExifTag.WaterDepth, + ExifTag.Acceleration, + ExifTag.CameraElevationAngle, ExifTag.FlashpixVersion, ExifTag.ColorSpace, ExifTag.PixelXDimension, @@ -166,8 +230,14 @@ namespace ImageSharp ExifTag.Sharpness, ExifTag.DeviceSettingDescription, ExifTag.SubjectDistanceRange, - ExifTag.ImageUniqueID - }; + ExifTag.ImageUniqueID, + ExifTag.OwnerName, + ExifTag.SerialNumber, + ExifTag.LensInfo, + ExifTag.LensMake, + ExifTag.LensModel, + ExifTag.LensSerialNumber + }; private static readonly ExifTag[] GPSTags = new ExifTag[31] {