|
|
@ -11,329 +11,329 @@ public class ExifValuesTests |
|
|
{ |
|
|
{ |
|
|
public static TheoryData<ExifTag> ByteTags => new() |
|
|
public static TheoryData<ExifTag> ByteTags => new() |
|
|
{ |
|
|
{ |
|
|
{ ExifTag.FaxProfile }, |
|
|
(ExifTag)ExifTag.FaxProfile, |
|
|
{ ExifTag.ModeNumber }, |
|
|
(ExifTag)ExifTag.ModeNumber, |
|
|
{ ExifTag.GPSAltitudeRef } |
|
|
(ExifTag)ExifTag.GPSAltitudeRef |
|
|
}; |
|
|
}; |
|
|
|
|
|
|
|
|
public static TheoryData<ExifTag> ByteArrayTags => new() |
|
|
public static TheoryData<ExifTag> ByteArrayTags => new() |
|
|
{ |
|
|
{ |
|
|
{ ExifTag.ClipPath }, |
|
|
(ExifTag)ExifTag.ClipPath, |
|
|
{ ExifTag.VersionYear }, |
|
|
(ExifTag)ExifTag.VersionYear, |
|
|
{ ExifTag.XMP }, |
|
|
(ExifTag)ExifTag.XMP, |
|
|
{ ExifTag.CFAPattern2 }, |
|
|
(ExifTag)ExifTag.CFAPattern2, |
|
|
{ ExifTag.TIFFEPStandardID }, |
|
|
(ExifTag)ExifTag.TIFFEPStandardID, |
|
|
{ ExifTag.GPSVersionID }, |
|
|
(ExifTag)ExifTag.GPSVersionID, |
|
|
}; |
|
|
}; |
|
|
|
|
|
|
|
|
public static TheoryData<ExifTag> DoubleArrayTags => new() |
|
|
public static TheoryData<ExifTag> DoubleArrayTags => new() |
|
|
{ |
|
|
{ |
|
|
{ ExifTag.PixelScale }, |
|
|
(ExifTag)ExifTag.PixelScale, |
|
|
{ ExifTag.IntergraphMatrix }, |
|
|
(ExifTag)ExifTag.IntergraphMatrix, |
|
|
{ ExifTag.ModelTiePoint }, |
|
|
(ExifTag)ExifTag.ModelTiePoint, |
|
|
{ ExifTag.ModelTransform } |
|
|
(ExifTag)ExifTag.ModelTransform |
|
|
}; |
|
|
}; |
|
|
|
|
|
|
|
|
public static TheoryData<ExifTag> LongTags => new() |
|
|
public static TheoryData<ExifTag> LongTags => new() |
|
|
{ |
|
|
{ |
|
|
{ ExifTag.SubfileType }, |
|
|
(ExifTag)ExifTag.SubfileType, |
|
|
{ ExifTag.SubIFDOffset }, |
|
|
(ExifTag)ExifTag.SubIFDOffset, |
|
|
{ ExifTag.GPSIFDOffset }, |
|
|
(ExifTag)ExifTag.GPSIFDOffset, |
|
|
{ ExifTag.T4Options }, |
|
|
(ExifTag)ExifTag.T4Options, |
|
|
{ ExifTag.T6Options }, |
|
|
(ExifTag)ExifTag.T6Options, |
|
|
{ ExifTag.XClipPathUnits }, |
|
|
(ExifTag)ExifTag.XClipPathUnits, |
|
|
{ ExifTag.YClipPathUnits }, |
|
|
(ExifTag)ExifTag.YClipPathUnits, |
|
|
{ ExifTag.ProfileType }, |
|
|
(ExifTag)ExifTag.ProfileType, |
|
|
{ ExifTag.CodingMethods }, |
|
|
(ExifTag)ExifTag.CodingMethods, |
|
|
{ ExifTag.T82ptions }, |
|
|
(ExifTag)ExifTag.T82ptions, |
|
|
{ ExifTag.JPEGInterchangeFormat }, |
|
|
(ExifTag)ExifTag.JPEGInterchangeFormat, |
|
|
{ ExifTag.JPEGInterchangeFormatLength }, |
|
|
(ExifTag)ExifTag.JPEGInterchangeFormatLength, |
|
|
{ ExifTag.MDFileTag }, |
|
|
(ExifTag)ExifTag.MDFileTag, |
|
|
{ ExifTag.StandardOutputSensitivity }, |
|
|
(ExifTag)ExifTag.StandardOutputSensitivity, |
|
|
{ ExifTag.RecommendedExposureIndex }, |
|
|
(ExifTag)ExifTag.RecommendedExposureIndex, |
|
|
{ ExifTag.ISOSpeed }, |
|
|
(ExifTag)ExifTag.ISOSpeed, |
|
|
{ ExifTag.ISOSpeedLatitudeyyy }, |
|
|
(ExifTag)ExifTag.ISOSpeedLatitudeyyy, |
|
|
{ ExifTag.ISOSpeedLatitudezzz }, |
|
|
(ExifTag)ExifTag.ISOSpeedLatitudezzz, |
|
|
{ ExifTag.FaxRecvParams }, |
|
|
(ExifTag)ExifTag.FaxRecvParams, |
|
|
{ ExifTag.FaxRecvTime }, |
|
|
(ExifTag)ExifTag.FaxRecvTime, |
|
|
{ ExifTag.ImageNumber }, |
|
|
(ExifTag)ExifTag.ImageNumber, |
|
|
}; |
|
|
}; |
|
|
|
|
|
|
|
|
public static TheoryData<ExifTag> LongArrayTags => new() |
|
|
public static TheoryData<ExifTag> LongArrayTags => new() |
|
|
{ |
|
|
{ |
|
|
{ ExifTag.FreeOffsets }, |
|
|
(ExifTag)ExifTag.FreeOffsets, |
|
|
{ ExifTag.FreeByteCounts }, |
|
|
(ExifTag)ExifTag.FreeByteCounts, |
|
|
{ ExifTag.ColorResponseUnit }, |
|
|
(ExifTag)ExifTag.ColorResponseUnit, |
|
|
{ ExifTag.SMinSampleValue }, |
|
|
(ExifTag)ExifTag.SMinSampleValue, |
|
|
{ ExifTag.SMaxSampleValue }, |
|
|
(ExifTag)ExifTag.SMaxSampleValue, |
|
|
{ ExifTag.JPEGQTables }, |
|
|
(ExifTag)ExifTag.JPEGQTables, |
|
|
{ ExifTag.JPEGDCTables }, |
|
|
(ExifTag)ExifTag.JPEGDCTables, |
|
|
{ ExifTag.JPEGACTables }, |
|
|
(ExifTag)ExifTag.JPEGACTables, |
|
|
{ ExifTag.StripRowCounts }, |
|
|
(ExifTag)ExifTag.StripRowCounts, |
|
|
{ ExifTag.IntergraphRegisters } |
|
|
(ExifTag)ExifTag.IntergraphRegisters |
|
|
}; |
|
|
}; |
|
|
|
|
|
|
|
|
public static TheoryData<ExifTag> NumberTags => new() |
|
|
public static TheoryData<ExifTag> NumberTags => new() |
|
|
{ |
|
|
{ |
|
|
{ ExifTag.ImageWidth }, |
|
|
(ExifTag)ExifTag.ImageWidth, |
|
|
{ ExifTag.ImageLength }, |
|
|
(ExifTag)ExifTag.ImageLength, |
|
|
{ ExifTag.TileWidth }, |
|
|
(ExifTag)ExifTag.TileWidth, |
|
|
{ ExifTag.TileLength }, |
|
|
(ExifTag)ExifTag.TileLength, |
|
|
{ ExifTag.BadFaxLines }, |
|
|
(ExifTag)ExifTag.BadFaxLines, |
|
|
{ ExifTag.ConsecutiveBadFaxLines }, |
|
|
(ExifTag)ExifTag.ConsecutiveBadFaxLines, |
|
|
{ ExifTag.PixelXDimension }, |
|
|
(ExifTag)ExifTag.PixelXDimension, |
|
|
{ ExifTag.PixelYDimension } |
|
|
(ExifTag)ExifTag.PixelYDimension |
|
|
}; |
|
|
}; |
|
|
|
|
|
|
|
|
public static TheoryData<ExifTag> NumberArrayTags => new() |
|
|
public static TheoryData<ExifTag> NumberArrayTags => new() |
|
|
{ |
|
|
{ |
|
|
{ ExifTag.StripOffsets }, |
|
|
(ExifTag)ExifTag.StripOffsets, |
|
|
{ ExifTag.StripByteCounts }, |
|
|
(ExifTag)ExifTag.StripByteCounts, |
|
|
{ ExifTag.TileByteCounts }, |
|
|
(ExifTag)ExifTag.TileByteCounts, |
|
|
{ ExifTag.TileOffsets }, |
|
|
(ExifTag)ExifTag.TileOffsets, |
|
|
{ ExifTag.ImageLayer } |
|
|
(ExifTag)ExifTag.ImageLayer |
|
|
}; |
|
|
}; |
|
|
|
|
|
|
|
|
public static TheoryData<ExifTag> RationalTags => new() |
|
|
public static TheoryData<ExifTag> RationalTags => new() |
|
|
{ |
|
|
{ |
|
|
{ ExifTag.XPosition }, |
|
|
(ExifTag)ExifTag.XPosition, |
|
|
{ ExifTag.YPosition }, |
|
|
(ExifTag)ExifTag.YPosition, |
|
|
{ ExifTag.XResolution }, |
|
|
(ExifTag)ExifTag.XResolution, |
|
|
{ ExifTag.YResolution }, |
|
|
(ExifTag)ExifTag.YResolution, |
|
|
{ ExifTag.BatteryLevel }, |
|
|
(ExifTag)ExifTag.BatteryLevel, |
|
|
{ ExifTag.ExposureTime }, |
|
|
(ExifTag)ExifTag.ExposureTime, |
|
|
{ ExifTag.FNumber }, |
|
|
(ExifTag)ExifTag.FNumber, |
|
|
{ ExifTag.MDScalePixel }, |
|
|
(ExifTag)ExifTag.MDScalePixel, |
|
|
{ ExifTag.CompressedBitsPerPixel }, |
|
|
(ExifTag)ExifTag.CompressedBitsPerPixel, |
|
|
{ ExifTag.ApertureValue }, |
|
|
(ExifTag)ExifTag.ApertureValue, |
|
|
{ ExifTag.MaxApertureValue }, |
|
|
(ExifTag)ExifTag.MaxApertureValue, |
|
|
{ ExifTag.SubjectDistance }, |
|
|
(ExifTag)ExifTag.SubjectDistance, |
|
|
{ ExifTag.FocalLength }, |
|
|
(ExifTag)ExifTag.FocalLength, |
|
|
{ ExifTag.FlashEnergy2 }, |
|
|
(ExifTag)ExifTag.FlashEnergy2, |
|
|
{ ExifTag.FocalPlaneXResolution2 }, |
|
|
(ExifTag)ExifTag.FocalPlaneXResolution2, |
|
|
{ ExifTag.FocalPlaneYResolution2 }, |
|
|
(ExifTag)ExifTag.FocalPlaneYResolution2, |
|
|
{ ExifTag.ExposureIndex2 }, |
|
|
(ExifTag)ExifTag.ExposureIndex2, |
|
|
{ ExifTag.Humidity }, |
|
|
(ExifTag)ExifTag.Humidity, |
|
|
{ ExifTag.Pressure }, |
|
|
(ExifTag)ExifTag.Pressure, |
|
|
{ ExifTag.Acceleration }, |
|
|
(ExifTag)ExifTag.Acceleration, |
|
|
{ ExifTag.FlashEnergy }, |
|
|
(ExifTag)ExifTag.FlashEnergy, |
|
|
{ ExifTag.FocalPlaneXResolution }, |
|
|
(ExifTag)ExifTag.FocalPlaneXResolution, |
|
|
{ ExifTag.FocalPlaneYResolution }, |
|
|
(ExifTag)ExifTag.FocalPlaneYResolution, |
|
|
{ ExifTag.ExposureIndex }, |
|
|
(ExifTag)ExifTag.ExposureIndex, |
|
|
{ ExifTag.DigitalZoomRatio }, |
|
|
(ExifTag)ExifTag.DigitalZoomRatio, |
|
|
{ ExifTag.GPSAltitude }, |
|
|
(ExifTag)ExifTag.GPSAltitude, |
|
|
{ ExifTag.GPSDOP }, |
|
|
(ExifTag)ExifTag.GPSDOP, |
|
|
{ ExifTag.GPSSpeed }, |
|
|
(ExifTag)ExifTag.GPSSpeed, |
|
|
{ ExifTag.GPSTrack }, |
|
|
(ExifTag)ExifTag.GPSTrack, |
|
|
{ ExifTag.GPSImgDirection }, |
|
|
(ExifTag)ExifTag.GPSImgDirection, |
|
|
{ ExifTag.GPSDestBearing }, |
|
|
(ExifTag)ExifTag.GPSDestBearing, |
|
|
{ ExifTag.GPSDestDistance }, |
|
|
(ExifTag)ExifTag.GPSDestDistance, |
|
|
{ ExifTag.GPSHPositioningError }, |
|
|
(ExifTag)ExifTag.GPSHPositioningError, |
|
|
}; |
|
|
}; |
|
|
|
|
|
|
|
|
public static TheoryData<ExifTag> RationalArrayTags => new() |
|
|
public static TheoryData<ExifTag> RationalArrayTags => new() |
|
|
{ |
|
|
{ |
|
|
{ ExifTag.WhitePoint }, |
|
|
(ExifTag)ExifTag.WhitePoint, |
|
|
{ ExifTag.PrimaryChromaticities }, |
|
|
(ExifTag)ExifTag.PrimaryChromaticities, |
|
|
{ ExifTag.YCbCrCoefficients }, |
|
|
(ExifTag)ExifTag.YCbCrCoefficients, |
|
|
{ ExifTag.ReferenceBlackWhite }, |
|
|
(ExifTag)ExifTag.ReferenceBlackWhite, |
|
|
{ ExifTag.GPSLatitude }, |
|
|
(ExifTag)ExifTag.GPSLatitude, |
|
|
{ ExifTag.GPSLongitude }, |
|
|
(ExifTag)ExifTag.GPSLongitude, |
|
|
{ ExifTag.GPSTimestamp }, |
|
|
(ExifTag)ExifTag.GPSTimestamp, |
|
|
{ ExifTag.GPSDestLatitude }, |
|
|
(ExifTag)ExifTag.GPSDestLatitude, |
|
|
{ ExifTag.GPSDestLongitude }, |
|
|
(ExifTag)ExifTag.GPSDestLongitude, |
|
|
{ ExifTag.LensSpecification } |
|
|
(ExifTag)ExifTag.LensSpecification |
|
|
}; |
|
|
}; |
|
|
|
|
|
|
|
|
public static TheoryData<ExifTag> ShortTags => new() |
|
|
public static TheoryData<ExifTag> ShortTags => new() |
|
|
{ |
|
|
{ |
|
|
{ ExifTag.OldSubfileType }, |
|
|
(ExifTag)ExifTag.OldSubfileType, |
|
|
{ ExifTag.Compression }, |
|
|
(ExifTag)ExifTag.Compression, |
|
|
{ ExifTag.PhotometricInterpretation }, |
|
|
(ExifTag)ExifTag.PhotometricInterpretation, |
|
|
{ ExifTag.Thresholding }, |
|
|
(ExifTag)ExifTag.Thresholding, |
|
|
{ ExifTag.CellWidth }, |
|
|
(ExifTag)ExifTag.CellWidth, |
|
|
{ ExifTag.CellLength }, |
|
|
(ExifTag)ExifTag.CellLength, |
|
|
{ ExifTag.FillOrder }, |
|
|
(ExifTag)ExifTag.FillOrder, |
|
|
{ ExifTag.Orientation }, |
|
|
(ExifTag)ExifTag.Orientation, |
|
|
{ ExifTag.SamplesPerPixel }, |
|
|
(ExifTag)ExifTag.SamplesPerPixel, |
|
|
{ ExifTag.PlanarConfiguration }, |
|
|
(ExifTag)ExifTag.PlanarConfiguration, |
|
|
{ ExifTag.Predictor }, |
|
|
(ExifTag)ExifTag.Predictor, |
|
|
{ ExifTag.GrayResponseUnit }, |
|
|
(ExifTag)ExifTag.GrayResponseUnit, |
|
|
{ ExifTag.ResolutionUnit }, |
|
|
(ExifTag)ExifTag.ResolutionUnit, |
|
|
{ ExifTag.CleanFaxData }, |
|
|
(ExifTag)ExifTag.CleanFaxData, |
|
|
{ ExifTag.InkSet }, |
|
|
(ExifTag)ExifTag.InkSet, |
|
|
{ ExifTag.NumberOfInks }, |
|
|
(ExifTag)ExifTag.NumberOfInks, |
|
|
{ ExifTag.DotRange }, |
|
|
(ExifTag)ExifTag.DotRange, |
|
|
{ ExifTag.Indexed }, |
|
|
(ExifTag)ExifTag.Indexed, |
|
|
{ ExifTag.OPIProxy }, |
|
|
(ExifTag)ExifTag.OPIProxy, |
|
|
{ ExifTag.JPEGProc }, |
|
|
(ExifTag)ExifTag.JPEGProc, |
|
|
{ ExifTag.JPEGRestartInterval }, |
|
|
(ExifTag)ExifTag.JPEGRestartInterval, |
|
|
{ ExifTag.YCbCrPositioning }, |
|
|
(ExifTag)ExifTag.YCbCrPositioning, |
|
|
{ ExifTag.Rating }, |
|
|
(ExifTag)ExifTag.Rating, |
|
|
{ ExifTag.RatingPercent }, |
|
|
(ExifTag)ExifTag.RatingPercent, |
|
|
{ ExifTag.ExposureProgram }, |
|
|
(ExifTag)ExifTag.ExposureProgram, |
|
|
{ ExifTag.Interlace }, |
|
|
(ExifTag)ExifTag.Interlace, |
|
|
{ ExifTag.SelfTimerMode }, |
|
|
(ExifTag)ExifTag.SelfTimerMode, |
|
|
{ ExifTag.SensitivityType }, |
|
|
(ExifTag)ExifTag.SensitivityType, |
|
|
{ ExifTag.MeteringMode }, |
|
|
(ExifTag)ExifTag.MeteringMode, |
|
|
{ ExifTag.LightSource }, |
|
|
(ExifTag)ExifTag.LightSource, |
|
|
{ ExifTag.FocalPlaneResolutionUnit2 }, |
|
|
(ExifTag)ExifTag.FocalPlaneResolutionUnit2, |
|
|
{ ExifTag.SensingMethod2 }, |
|
|
(ExifTag)ExifTag.SensingMethod2, |
|
|
{ ExifTag.Flash }, |
|
|
(ExifTag)ExifTag.Flash, |
|
|
{ ExifTag.ColorSpace }, |
|
|
(ExifTag)ExifTag.ColorSpace, |
|
|
{ ExifTag.FocalPlaneResolutionUnit }, |
|
|
(ExifTag)ExifTag.FocalPlaneResolutionUnit, |
|
|
{ ExifTag.SensingMethod }, |
|
|
(ExifTag)ExifTag.SensingMethod, |
|
|
{ ExifTag.CustomRendered }, |
|
|
(ExifTag)ExifTag.CustomRendered, |
|
|
{ ExifTag.ExposureMode }, |
|
|
(ExifTag)ExifTag.ExposureMode, |
|
|
{ ExifTag.WhiteBalance }, |
|
|
(ExifTag)ExifTag.WhiteBalance, |
|
|
{ ExifTag.FocalLengthIn35mmFilm }, |
|
|
(ExifTag)ExifTag.FocalLengthIn35mmFilm, |
|
|
{ ExifTag.SceneCaptureType }, |
|
|
(ExifTag)ExifTag.SceneCaptureType, |
|
|
{ ExifTag.GainControl }, |
|
|
(ExifTag)ExifTag.GainControl, |
|
|
{ ExifTag.Contrast }, |
|
|
(ExifTag)ExifTag.Contrast, |
|
|
{ ExifTag.Saturation }, |
|
|
(ExifTag)ExifTag.Saturation, |
|
|
{ ExifTag.Sharpness }, |
|
|
(ExifTag)ExifTag.Sharpness, |
|
|
{ ExifTag.SubjectDistanceRange }, |
|
|
(ExifTag)ExifTag.SubjectDistanceRange, |
|
|
{ ExifTag.GPSDifferential } |
|
|
(ExifTag)ExifTag.GPSDifferential |
|
|
}; |
|
|
}; |
|
|
|
|
|
|
|
|
public static TheoryData<ExifTag> ShortArrayTags => new() |
|
|
public static TheoryData<ExifTag> ShortArrayTags => new() |
|
|
{ |
|
|
{ |
|
|
{ ExifTag.BitsPerSample }, |
|
|
(ExifTag)ExifTag.BitsPerSample, |
|
|
{ ExifTag.MinSampleValue }, |
|
|
(ExifTag)ExifTag.MinSampleValue, |
|
|
{ ExifTag.MaxSampleValue }, |
|
|
(ExifTag)ExifTag.MaxSampleValue, |
|
|
{ ExifTag.GrayResponseCurve }, |
|
|
(ExifTag)ExifTag.GrayResponseCurve, |
|
|
{ ExifTag.ColorMap }, |
|
|
(ExifTag)ExifTag.ColorMap, |
|
|
{ ExifTag.ExtraSamples }, |
|
|
(ExifTag)ExifTag.ExtraSamples, |
|
|
{ ExifTag.PageNumber }, |
|
|
(ExifTag)ExifTag.PageNumber, |
|
|
{ ExifTag.TransferFunction }, |
|
|
(ExifTag)ExifTag.TransferFunction, |
|
|
{ ExifTag.HalftoneHints }, |
|
|
(ExifTag)ExifTag.HalftoneHints, |
|
|
{ ExifTag.SampleFormat }, |
|
|
(ExifTag)ExifTag.SampleFormat, |
|
|
{ ExifTag.TransferRange }, |
|
|
(ExifTag)ExifTag.TransferRange, |
|
|
{ ExifTag.DefaultImageColor }, |
|
|
(ExifTag)ExifTag.DefaultImageColor, |
|
|
{ ExifTag.JPEGLosslessPredictors }, |
|
|
(ExifTag)ExifTag.JPEGLosslessPredictors, |
|
|
{ ExifTag.JPEGPointTransforms }, |
|
|
(ExifTag)ExifTag.JPEGPointTransforms, |
|
|
{ ExifTag.YCbCrSubsampling }, |
|
|
(ExifTag)ExifTag.YCbCrSubsampling, |
|
|
{ ExifTag.CFARepeatPatternDim }, |
|
|
(ExifTag)ExifTag.CFARepeatPatternDim, |
|
|
{ ExifTag.IntergraphPacketData }, |
|
|
(ExifTag)ExifTag.IntergraphPacketData, |
|
|
{ ExifTag.ISOSpeedRatings }, |
|
|
(ExifTag)ExifTag.ISOSpeedRatings, |
|
|
{ ExifTag.SubjectArea }, |
|
|
(ExifTag)ExifTag.SubjectArea, |
|
|
{ ExifTag.SubjectLocation } |
|
|
(ExifTag)ExifTag.SubjectLocation |
|
|
}; |
|
|
}; |
|
|
|
|
|
|
|
|
public static TheoryData<ExifTag> SignedRationalTags => new() |
|
|
public static TheoryData<ExifTag> SignedRationalTags => new() |
|
|
{ |
|
|
{ |
|
|
{ ExifTag.ShutterSpeedValue }, |
|
|
(ExifTag)ExifTag.ShutterSpeedValue, |
|
|
{ ExifTag.BrightnessValue }, |
|
|
(ExifTag)ExifTag.BrightnessValue, |
|
|
{ ExifTag.ExposureBiasValue }, |
|
|
(ExifTag)ExifTag.ExposureBiasValue, |
|
|
{ ExifTag.AmbientTemperature }, |
|
|
(ExifTag)ExifTag.AmbientTemperature, |
|
|
{ ExifTag.WaterDepth }, |
|
|
(ExifTag)ExifTag.WaterDepth, |
|
|
{ ExifTag.CameraElevationAngle } |
|
|
(ExifTag)ExifTag.CameraElevationAngle |
|
|
}; |
|
|
}; |
|
|
|
|
|
|
|
|
public static TheoryData<ExifTag> SignedRationalArrayTags => new() |
|
|
public static TheoryData<ExifTag> SignedRationalArrayTags => new() |
|
|
{ |
|
|
{ |
|
|
{ ExifTag.Decode } |
|
|
(ExifTag)ExifTag.Decode |
|
|
}; |
|
|
}; |
|
|
|
|
|
|
|
|
public static TheoryData<ExifTag> SignedShortArrayTags => new() |
|
|
public static TheoryData<ExifTag> SignedShortArrayTags => new() |
|
|
{ |
|
|
{ |
|
|
{ ExifTag.TimeZoneOffset } |
|
|
(ExifTag)ExifTag.TimeZoneOffset |
|
|
}; |
|
|
}; |
|
|
|
|
|
|
|
|
public static TheoryData<ExifTag> StringTags => new() |
|
|
public static TheoryData<ExifTag> StringTags => new() |
|
|
{ |
|
|
{ |
|
|
{ ExifTag.ImageDescription }, |
|
|
(ExifTag)ExifTag.ImageDescription, |
|
|
{ ExifTag.Make }, |
|
|
(ExifTag)ExifTag.Make, |
|
|
{ ExifTag.Model }, |
|
|
(ExifTag)ExifTag.Model, |
|
|
{ ExifTag.Software }, |
|
|
(ExifTag)ExifTag.Software, |
|
|
{ ExifTag.DateTime }, |
|
|
(ExifTag)ExifTag.DateTime, |
|
|
{ ExifTag.Artist }, |
|
|
(ExifTag)ExifTag.Artist, |
|
|
{ ExifTag.HostComputer }, |
|
|
(ExifTag)ExifTag.HostComputer, |
|
|
{ ExifTag.Copyright }, |
|
|
(ExifTag)ExifTag.Copyright, |
|
|
{ ExifTag.DocumentName }, |
|
|
(ExifTag)ExifTag.DocumentName, |
|
|
{ ExifTag.PageName }, |
|
|
(ExifTag)ExifTag.PageName, |
|
|
{ ExifTag.InkNames }, |
|
|
(ExifTag)ExifTag.InkNames, |
|
|
{ ExifTag.TargetPrinter }, |
|
|
(ExifTag)ExifTag.TargetPrinter, |
|
|
{ ExifTag.ImageID }, |
|
|
(ExifTag)ExifTag.ImageID, |
|
|
{ ExifTag.MDLabName }, |
|
|
(ExifTag)ExifTag.MDLabName, |
|
|
{ ExifTag.MDSampleInfo }, |
|
|
(ExifTag)ExifTag.MDSampleInfo, |
|
|
{ ExifTag.MDPrepDate }, |
|
|
(ExifTag)ExifTag.MDPrepDate, |
|
|
{ ExifTag.MDPrepTime }, |
|
|
(ExifTag)ExifTag.MDPrepTime, |
|
|
{ ExifTag.MDFileUnits }, |
|
|
(ExifTag)ExifTag.MDFileUnits, |
|
|
{ ExifTag.SEMInfo }, |
|
|
(ExifTag)ExifTag.SEMInfo, |
|
|
{ ExifTag.SpectralSensitivity }, |
|
|
(ExifTag)ExifTag.SpectralSensitivity, |
|
|
{ ExifTag.DateTimeOriginal }, |
|
|
(ExifTag)ExifTag.DateTimeOriginal, |
|
|
{ ExifTag.DateTimeDigitized }, |
|
|
(ExifTag)ExifTag.DateTimeDigitized, |
|
|
{ ExifTag.SubsecTime }, |
|
|
(ExifTag)ExifTag.SubsecTime, |
|
|
{ ExifTag.SubsecTimeOriginal }, |
|
|
(ExifTag)ExifTag.SubsecTimeOriginal, |
|
|
{ ExifTag.SubsecTimeDigitized }, |
|
|
(ExifTag)ExifTag.SubsecTimeDigitized, |
|
|
{ ExifTag.RelatedSoundFile }, |
|
|
(ExifTag)ExifTag.RelatedSoundFile, |
|
|
{ ExifTag.FaxSubaddress }, |
|
|
(ExifTag)ExifTag.FaxSubaddress, |
|
|
{ ExifTag.OffsetTime }, |
|
|
(ExifTag)ExifTag.OffsetTime, |
|
|
{ ExifTag.OffsetTimeOriginal }, |
|
|
(ExifTag)ExifTag.OffsetTimeOriginal, |
|
|
{ ExifTag.OffsetTimeDigitized }, |
|
|
(ExifTag)ExifTag.OffsetTimeDigitized, |
|
|
{ ExifTag.SecurityClassification }, |
|
|
(ExifTag)ExifTag.SecurityClassification, |
|
|
{ ExifTag.ImageHistory }, |
|
|
(ExifTag)ExifTag.ImageHistory, |
|
|
{ ExifTag.ImageUniqueID }, |
|
|
(ExifTag)ExifTag.ImageUniqueID, |
|
|
{ ExifTag.OwnerName }, |
|
|
(ExifTag)ExifTag.OwnerName, |
|
|
{ ExifTag.SerialNumber }, |
|
|
(ExifTag)ExifTag.SerialNumber, |
|
|
{ ExifTag.LensMake }, |
|
|
(ExifTag)ExifTag.LensMake, |
|
|
{ ExifTag.LensModel }, |
|
|
(ExifTag)ExifTag.LensModel, |
|
|
{ ExifTag.LensSerialNumber }, |
|
|
(ExifTag)ExifTag.LensSerialNumber, |
|
|
{ ExifTag.GDALMetadata }, |
|
|
(ExifTag)ExifTag.GDALMetadata, |
|
|
{ ExifTag.GDALNoData }, |
|
|
(ExifTag)ExifTag.GDALNoData, |
|
|
{ ExifTag.GPSLatitudeRef }, |
|
|
(ExifTag)ExifTag.GPSLatitudeRef, |
|
|
{ ExifTag.GPSLongitudeRef }, |
|
|
(ExifTag)ExifTag.GPSLongitudeRef, |
|
|
{ ExifTag.GPSSatellites }, |
|
|
(ExifTag)ExifTag.GPSSatellites, |
|
|
{ ExifTag.GPSStatus }, |
|
|
(ExifTag)ExifTag.GPSStatus, |
|
|
{ ExifTag.GPSMeasureMode }, |
|
|
(ExifTag)ExifTag.GPSMeasureMode, |
|
|
{ ExifTag.GPSSpeedRef }, |
|
|
(ExifTag)ExifTag.GPSSpeedRef, |
|
|
{ ExifTag.GPSTrackRef }, |
|
|
(ExifTag)ExifTag.GPSTrackRef, |
|
|
{ ExifTag.GPSImgDirectionRef }, |
|
|
(ExifTag)ExifTag.GPSImgDirectionRef, |
|
|
{ ExifTag.GPSMapDatum }, |
|
|
(ExifTag)ExifTag.GPSMapDatum, |
|
|
{ ExifTag.GPSDestLatitudeRef }, |
|
|
(ExifTag)ExifTag.GPSDestLatitudeRef, |
|
|
{ ExifTag.GPSDestLongitudeRef }, |
|
|
(ExifTag)ExifTag.GPSDestLongitudeRef, |
|
|
{ ExifTag.GPSDestBearingRef }, |
|
|
(ExifTag)ExifTag.GPSDestBearingRef, |
|
|
{ ExifTag.GPSDestDistanceRef }, |
|
|
(ExifTag)ExifTag.GPSDestDistanceRef, |
|
|
{ ExifTag.GPSDateStamp }, |
|
|
(ExifTag)ExifTag.GPSDateStamp, |
|
|
}; |
|
|
}; |
|
|
|
|
|
|
|
|
public static TheoryData<ExifTag> UndefinedTags => new() |
|
|
public static TheoryData<ExifTag> UndefinedTags => new() |
|
|
{ |
|
|
{ |
|
|
{ ExifTag.FileSource }, |
|
|
(ExifTag)ExifTag.FileSource, |
|
|
{ ExifTag.SceneType } |
|
|
(ExifTag)ExifTag.SceneType |
|
|
}; |
|
|
}; |
|
|
|
|
|
|
|
|
public static TheoryData<ExifTag> UndefinedArrayTags => new() |
|
|
public static TheoryData<ExifTag> UndefinedArrayTags => new() |
|
|
{ |
|
|
{ |
|
|
{ ExifTag.JPEGTables }, |
|
|
(ExifTag)ExifTag.JPEGTables, |
|
|
{ ExifTag.OECF }, |
|
|
(ExifTag)ExifTag.OECF, |
|
|
{ ExifTag.ExifVersion }, |
|
|
(ExifTag)ExifTag.ExifVersion, |
|
|
{ ExifTag.ComponentsConfiguration }, |
|
|
(ExifTag)ExifTag.ComponentsConfiguration, |
|
|
{ ExifTag.MakerNote }, |
|
|
(ExifTag)ExifTag.MakerNote, |
|
|
{ ExifTag.FlashpixVersion }, |
|
|
(ExifTag)ExifTag.FlashpixVersion, |
|
|
{ ExifTag.SpatialFrequencyResponse }, |
|
|
(ExifTag)ExifTag.SpatialFrequencyResponse, |
|
|
{ ExifTag.SpatialFrequencyResponse2 }, |
|
|
(ExifTag)ExifTag.SpatialFrequencyResponse2, |
|
|
{ ExifTag.Noise }, |
|
|
(ExifTag)ExifTag.Noise, |
|
|
{ ExifTag.CFAPattern }, |
|
|
(ExifTag)ExifTag.CFAPattern, |
|
|
{ ExifTag.DeviceSettingDescription }, |
|
|
(ExifTag)ExifTag.DeviceSettingDescription, |
|
|
{ ExifTag.ImageSourceData }, |
|
|
(ExifTag)ExifTag.ImageSourceData, |
|
|
}; |
|
|
}; |
|
|
|
|
|
|
|
|
public static TheoryData<ExifTag> EncodedStringTags => new() |
|
|
public static TheoryData<ExifTag> EncodedStringTags => new() |
|
|
{ |
|
|
{ |
|
|
{ ExifTag.UserComment }, |
|
|
(ExifTag)ExifTag.UserComment, |
|
|
{ ExifTag.GPSProcessingMethod }, |
|
|
(ExifTag)ExifTag.GPSProcessingMethod, |
|
|
{ ExifTag.GPSAreaInformation } |
|
|
(ExifTag)ExifTag.GPSAreaInformation |
|
|
}; |
|
|
}; |
|
|
|
|
|
|
|
|
public static TheoryData<ExifTag> Ucs2StringTags => new() |
|
|
public static TheoryData<ExifTag> Ucs2StringTags => new() |
|
|
{ |
|
|
{ |
|
|
{ ExifTag.XPTitle }, |
|
|
(ExifTag)ExifTag.XPTitle, |
|
|
{ ExifTag.XPComment }, |
|
|
(ExifTag)ExifTag.XPComment, |
|
|
{ ExifTag.XPAuthor }, |
|
|
(ExifTag)ExifTag.XPAuthor, |
|
|
{ ExifTag.XPKeywords }, |
|
|
(ExifTag)ExifTag.XPKeywords, |
|
|
{ ExifTag.XPSubject }, |
|
|
(ExifTag)ExifTag.XPSubject, |
|
|
}; |
|
|
}; |
|
|
|
|
|
|
|
|
[Theory] |
|
|
[Theory] |
|
|
|