Implementation
const exifTagNameToID = <String, int>{
'ProcessingSoftware': 0xb,
'SubfileType': 0xfe,
'OldSubfileType': 0xff,
'ImageWidth': 0x100,
'ImageLength': 0x101,
'ImageHeight': 0x101, // alias for a more common name.
'BitsPerSample': 0x102,
'Compression': 0x103,
'PhotometricInterpretation': 0x106,
'Thresholding': 0x107,
'CellWidth': 0x108,
'CellLength': 0x109,
'FillOrder': 0x10a,
'DocumentName': 0x10d,
'ImageDescription': 0x10e,
'Make': 0x10f,
'Model': 0x110,
'StripOffsets': 0x111,
'Orientation': 0x112,
'SamplesPerPixel': 0x115,
'RowsPerStrip': 0x116,
'StripByteCounts': 0x117,
'MinSampleValue': 0x118,
'MaxSampleValue': 0x119,
'XResolution': 0x11a,
'YResolution': 0x11b,
'PlanarConfiguration': 0x11c,
'PageName': 0x11d,
'XPosition': 0x11e,
'YPosition': 0x11f,
'GrayResponseUnit': 0x122,
'GrayResponseCurve': 0x123,
'T4Options': 0x124,
'T6Options': 0x125,
'ResolutionUnit': 0x128,
'PageNumber': 0x129,
'ColorResponseUnit': 0x12c,
'TransferFunction': 0x12d,
'Software': 0x131,
'DateTime': 0x132,
'Artist': 0x13b,
'HostComputer': 0x13c,
'Predictor': 0x13d,
'WhitePoint': 0x13e,
'PrimaryChromaticities': 0x13f,
'ColorMap': 0x140,
'HalftoneHints': 0x141,
'TileWidth': 0x142,
'TileLength': 0x143,
'TileOffsets': 0x144,
'TileByteCounts': 0x145,
'BadFaxLines': 0x146,
'CleanFaxData': 0x147,
'ConsecutiveBadFaxLines': 0x148,
'InkSet': 0x14c,
'InkNames': 0x14d,
'NumberofInks': 0x14e,
'DotRange': 0x150,
'TargetPrinter': 0x151,
'ExtraSamples': 0x152,
'SampleFormat': 0x153,
'SMinSampleValue': 0x154,
'SMaxSampleValue': 0x155,
'TransferRange': 0x156,
'ClipPath': 0x157,
'JPEGProc': 0x200,
'JPEGInterchangeFormat': 0x201,
'JPEGInterchangeFormatLength': 0x202,
'YCbCrCoefficients': 0x211,
'YCbCrSubSampling': 0x212,
'YCbCrPositioning': 0x213,
'ReferenceBlackWhite': 0x214,
'ApplicationNotes': 0x2bc,
'Rating': 0x4746,
'CFARepeatPatternDim': 0x828d,
'CFAPattern': 0x828e,
'BatteryLevel': 0x828f,
'Copyright': 0x8298,
'ExposureTime': 0x829a,
'FNumber': 0x829d,
'IPTC-NAA': 0x83bb,
'ExifOffset': 0x8769,
'InterColorProfile': 0x8773,
'ExposureProgram': 0x8822,
'SpectralSensitivity': 0x8824,
'GPSOffset': 0x8825,
'ISOSpeed': 0x8827,
'OECF': 0x8828,
'SensitivityType': 0x8830,
'RecommendedExposureIndex': 0x8832,
'ExifVersion': 0x9000,
'DateTimeOriginal': 0x9003,
'DateTimeDigitized': 0x9004,
'OffsetTime': 0x9010,
'OffsetTimeOriginal': 0x9011,
'OffsetTimeDigitized': 0x9012,
'ComponentsConfiguration': 0x9101,
'CompressedBitsPerPixel': 0x9102,
'ShutterSpeedValue': 0x9201,
'ApertureValue': 0x9202,
'BrightnessValue': 0x9203,
'ExposureBiasValue': 0x9204,
'MaxApertureValue': 0x9205,
'SubjectDistance': 0x9206,
'MeteringMode': 0x9207,
'LightSource': 0x9208,
'Flash': 0x9209,
'FocalLength': 0x920a,
'SubjectArea': 0x9214,
'MakerNote': 0x927c,
'UserComment': 0x9286,
'SubSecTime': 0x9290,
'SubSecTimeOriginal': 0x9291,
'SubSecTimeDigitized': 0x9292,
'XPTitle': 0x9c9b,
'XPComment': 0x9c9c,
'XPAuthor': 0x9c9d,
'XPKeywords': 0x9c9e,
'XPSubject': 0x9c9f,
'FlashPixVersion': 0xa000,
'ColorSpace': 0xa001,
'ExifImageWidth': 0xa002,
'ExifImageLength': 0xa003,
'RelatedSoundFile': 0xa004,
'InteroperabilityOffset': 0xa005,
'FlashEnergy': 0xa20b,
'SpatialFrequencyResponse': 0xa20c,
'FocalPlaneXResolution': 0xa20e,
'FocalPlaneYResolution': 0xa20f,
'FocalPlaneResolutionUnit': 0xa210,
'SubjectLocation': 0xa214,
'ExposureIndex': 0xa215,
'SensingMethod': 0xa217,
'FileSource': 0xa300,
'SceneType': 0xa301,
'CVAPattern': 0xa302,
'CustomRendered': 0xa401,
'ExposureMode': 0xa402,
'WhiteBalance': 0xa403,
'DigitalZoomRatio': 0xa404,
'FocalLengthIn35mmFilm': 0xa405,
'SceneCaptureType': 0xa406,
'GainControl': 0xa407,
'Contrast': 0xa408,
'Saturation': 0xa409,
'Sharpness': 0xa40a,
'DeviceSettingDescription': 0xa40b,
'SubjectDistanceRange': 0xa40c,
'ImageUniqueID': 0xa420,
'CameraOwnerName': 0xa430,
'BodySerialNumber': 0xa431,
'LensSpecification': 0xa432,
'LensMake': 0xa433,
'LensModel': 0xa434,
'LensSerialNumber': 0xa435,
'Gamma': 0xa500,
'PrintIM': 0xc4a5,
'Padding': 0xea1c,
'OffsetSchema': 0xea1d,
'OwnerName': 0xfde8,
'SerialNumber': 0xfde9,
'InteropIndex': 0x1,
'InteropVersion': 0x2,
'RelatedImageFileFormat': 0x1000,
'RelatedImageWidth': 0x1001,
'RelatedImageLength': 0x1002,
'GPSVersionID': 0x0,
'GPSLatitudeRef': 0x1,
'GPSLatitude': 0x2,
'GPSLongitudeRef': 0x3,
'GPSLongitude': 0x4,
'GPSAltitudeRef': 0x5,
'GPSAltitude': 0x6,
'GPSTimeStamp': 0x7,
'GPSSatellites': 0x8,
'GPSStatus': 0x9,
'GPSMeasureMode': 0xa,
'GPSDOP': 0xb,
'GPSSpeedRef': 0xc,
'GPSSpeed': 0xd,
'GPSTrackRef': 0xe,
'GPSTrack': 0xf,
'GPSImgDirectionRef': 0x10,
'GPSImgDirection': 0x11,
'GPSMapDatum': 0x12,
'GPSDestLatitudeRef': 0x13,
'GPSDestLatitude': 0x14,
'GPSDestLongitudeRef': 0x15,
'GPSDestLongitude': 0x16,
'GPSDestBearingRef': 0x17,
'GPSDestBearing': 0x18,
'GPSDestDistanceRef': 0x19,
'GPSDestDistance': 0x1a,
'GPSProcessingMethod': 0x1b,
'GPSAreaInformation': 0x1c,
'GPSDate': 0x1d,
'GPSDifferential': 0x1e,
};