|
|
@ -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] |
|
|
|