639 lines
30 KiB
Python
639 lines
30 KiB
Python
|
class TYPES:
|
||
|
Byte = 1
|
||
|
Ascii = 2
|
||
|
Short = 3
|
||
|
Long = 4
|
||
|
Rational = 5
|
||
|
SByte = 6
|
||
|
Undefined = 7
|
||
|
SShort = 8
|
||
|
SLong = 9
|
||
|
SRational = 10
|
||
|
Float = 11
|
||
|
DFloat = 12
|
||
|
|
||
|
|
||
|
TAGS = {
|
||
|
'Image': {11: {'name': 'ProcessingSoftware', 'type': TYPES.Ascii},
|
||
|
254: {'name': 'NewSubfileType', 'type': TYPES.Long},
|
||
|
255: {'name': 'SubfileType', 'type': TYPES.Short},
|
||
|
256: {'name': 'ImageWidth', 'type': TYPES.Long},
|
||
|
257: {'name': 'ImageLength', 'type': TYPES.Long},
|
||
|
258: {'name': 'BitsPerSample', 'type': TYPES.Short},
|
||
|
259: {'name': 'Compression', 'type': TYPES.Short},
|
||
|
262: {'name': 'PhotometricInterpretation', 'type': TYPES.Short},
|
||
|
263: {'name': 'Threshholding', 'type': TYPES.Short},
|
||
|
264: {'name': 'CellWidth', 'type': TYPES.Short},
|
||
|
265: {'name': 'CellLength', 'type': TYPES.Short},
|
||
|
266: {'name': 'FillOrder', 'type': TYPES.Short},
|
||
|
269: {'name': 'DocumentName', 'type': TYPES.Ascii},
|
||
|
270: {'name': 'ImageDescription', 'type': TYPES.Ascii},
|
||
|
271: {'name': 'Make', 'type': TYPES.Ascii},
|
||
|
272: {'name': 'Model', 'type': TYPES.Ascii},
|
||
|
273: {'name': 'StripOffsets', 'type': TYPES.Long},
|
||
|
274: {'name': 'Orientation', 'type': TYPES.Short},
|
||
|
277: {'name': 'SamplesPerPixel', 'type': TYPES.Short},
|
||
|
278: {'name': 'RowsPerStrip', 'type': TYPES.Long},
|
||
|
279: {'name': 'StripByteCounts', 'type': TYPES.Long},
|
||
|
282: {'name': 'XResolution', 'type': TYPES.Rational},
|
||
|
283: {'name': 'YResolution', 'type': TYPES.Rational},
|
||
|
284: {'name': 'PlanarConfiguration', 'type': TYPES.Short},
|
||
|
290: {'name': 'GrayResponseUnit', 'type': TYPES.Short},
|
||
|
291: {'name': 'GrayResponseCurve', 'type': TYPES.Short},
|
||
|
292: {'name': 'T4Options', 'type': TYPES.Long},
|
||
|
293: {'name': 'T6Options', 'type': TYPES.Long},
|
||
|
296: {'name': 'ResolutionUnit', 'type': TYPES.Short},
|
||
|
301: {'name': 'TransferFunction', 'type': TYPES.Short},
|
||
|
305: {'name': 'Software', 'type': TYPES.Ascii},
|
||
|
306: {'name': 'DateTime', 'type': TYPES.Ascii},
|
||
|
315: {'name': 'Artist', 'type': TYPES.Ascii},
|
||
|
316: {'name': 'HostComputer', 'type': TYPES.Ascii},
|
||
|
317: {'name': 'Predictor', 'type': TYPES.Short},
|
||
|
318: {'name': 'WhitePoint', 'type': TYPES.Rational},
|
||
|
319: {'name': 'PrimaryChromaticities', 'type': TYPES.Rational},
|
||
|
320: {'name': 'ColorMap', 'type': TYPES.Short},
|
||
|
321: {'name': 'HalftoneHints', 'type': TYPES.Short},
|
||
|
322: {'name': 'TileWidth', 'type': TYPES.Short},
|
||
|
323: {'name': 'TileLength', 'type': TYPES.Short},
|
||
|
324: {'name': 'TileOffsets', 'type': TYPES.Short},
|
||
|
325: {'name': 'TileByteCounts', 'type': TYPES.Short},
|
||
|
330: {'name': 'SubIFDs', 'type': TYPES.Long},
|
||
|
332: {'name': 'InkSet', 'type': TYPES.Short},
|
||
|
333: {'name': 'InkNames', 'type': TYPES.Ascii},
|
||
|
334: {'name': 'NumberOfInks', 'type': TYPES.Short},
|
||
|
336: {'name': 'DotRange', 'type': TYPES.Byte},
|
||
|
337: {'name': 'TargetPrinter', 'type': TYPES.Ascii},
|
||
|
338: {'name': 'ExtraSamples', 'type': TYPES.Short},
|
||
|
339: {'name': 'SampleFormat', 'type': TYPES.Short},
|
||
|
340: {'name': 'SMinSampleValue', 'type': TYPES.Short},
|
||
|
341: {'name': 'SMaxSampleValue', 'type': TYPES.Short},
|
||
|
342: {'name': 'TransferRange', 'type': TYPES.Short},
|
||
|
343: {'name': 'ClipPath', 'type': TYPES.Byte},
|
||
|
344: {'name': 'XClipPathUnits', 'type': TYPES.Long},
|
||
|
345: {'name': 'YClipPathUnits', 'type': TYPES.Long},
|
||
|
346: {'name': 'Indexed', 'type': TYPES.Short},
|
||
|
347: {'name': 'JPEGTables', 'type': TYPES.Undefined},
|
||
|
351: {'name': 'OPIProxy', 'type': TYPES.Short},
|
||
|
512: {'name': 'JPEGProc', 'type': TYPES.Long},
|
||
|
513: {'name': 'JPEGInterchangeFormat', 'type': TYPES.Long},
|
||
|
514: {'name': 'JPEGInterchangeFormatLength', 'type': TYPES.Long},
|
||
|
515: {'name': 'JPEGRestartInterval', 'type': TYPES.Short},
|
||
|
517: {'name': 'JPEGLosslessPredictors', 'type': TYPES.Short},
|
||
|
518: {'name': 'JPEGPointTransforms', 'type': TYPES.Short},
|
||
|
519: {'name': 'JPEGQTables', 'type': TYPES.Long},
|
||
|
520: {'name': 'JPEGDCTables', 'type': TYPES.Long},
|
||
|
521: {'name': 'JPEGACTables', 'type': TYPES.Long},
|
||
|
529: {'name': 'YCbCrCoefficients', 'type': TYPES.Rational},
|
||
|
530: {'name': 'YCbCrSubSampling', 'type': TYPES.Short},
|
||
|
531: {'name': 'YCbCrPositioning', 'type': TYPES.Short},
|
||
|
532: {'name': 'ReferenceBlackWhite', 'type': TYPES.Rational},
|
||
|
700: {'name': 'XMLPacket', 'type': TYPES.Byte},
|
||
|
18246: {'name': 'Rating', 'type': TYPES.Short},
|
||
|
18249: {'name': 'RatingPercent', 'type': TYPES.Short},
|
||
|
32781: {'name': 'ImageID', 'type': TYPES.Ascii},
|
||
|
33421: {'name': 'CFARepeatPatternDim', 'type': TYPES.Short},
|
||
|
33422: {'name': 'CFAPattern', 'type': TYPES.Byte},
|
||
|
33423: {'name': 'BatteryLevel', 'type': TYPES.Rational},
|
||
|
33432: {'name': 'Copyright', 'type': TYPES.Ascii},
|
||
|
33434: {'name': 'ExposureTime', 'type': TYPES.Rational},
|
||
|
34377: {'name': 'ImageResources', 'type': TYPES.Byte},
|
||
|
34665: {'name': 'ExifTag', 'type': TYPES.Long},
|
||
|
34675: {'name': 'InterColorProfile', 'type': TYPES.Undefined},
|
||
|
34853: {'name': 'GPSTag', 'type': TYPES.Long},
|
||
|
34857: {'name': 'Interlace', 'type': TYPES.Short},
|
||
|
34858: {'name': 'TimeZoneOffset', 'type': TYPES.Long},
|
||
|
34859: {'name': 'SelfTimerMode', 'type': TYPES.Short},
|
||
|
37387: {'name': 'FlashEnergy', 'type': TYPES.Rational},
|
||
|
37388: {'name': 'SpatialFrequencyResponse', 'type': TYPES.Undefined},
|
||
|
37389: {'name': 'Noise', 'type': TYPES.Undefined},
|
||
|
37390: {'name': 'FocalPlaneXResolution', 'type': TYPES.Rational},
|
||
|
37391: {'name': 'FocalPlaneYResolution', 'type': TYPES.Rational},
|
||
|
37392: {'name': 'FocalPlaneResolutionUnit', 'type': TYPES.Short},
|
||
|
37393: {'name': 'ImageNumber', 'type': TYPES.Long},
|
||
|
37394: {'name': 'SecurityClassification', 'type': TYPES.Ascii},
|
||
|
37395: {'name': 'ImageHistory', 'type': TYPES.Ascii},
|
||
|
37397: {'name': 'ExposureIndex', 'type': TYPES.Rational},
|
||
|
37398: {'name': 'TIFFEPStandardID', 'type': TYPES.Byte},
|
||
|
37399: {'name': 'SensingMethod', 'type': TYPES.Short},
|
||
|
40091: {'name': 'XPTitle', 'type': TYPES.Byte},
|
||
|
40092: {'name': 'XPComment', 'type': TYPES.Byte},
|
||
|
40093: {'name': 'XPAuthor', 'type': TYPES.Byte},
|
||
|
40094: {'name': 'XPKeywords', 'type': TYPES.Byte},
|
||
|
40095: {'name': 'XPSubject', 'type': TYPES.Byte},
|
||
|
50341: {'name': 'PrintImageMatching', 'type': TYPES.Undefined},
|
||
|
50706: {'name': 'DNGVersion', 'type': TYPES.Byte},
|
||
|
50707: {'name': 'DNGBackwardVersion', 'type': TYPES.Byte},
|
||
|
50708: {'name': 'UniqueCameraModel', 'type': TYPES.Ascii},
|
||
|
50709: {'name': 'LocalizedCameraModel', 'type': TYPES.Byte},
|
||
|
50710: {'name': 'CFAPlaneColor', 'type': TYPES.Byte},
|
||
|
50711: {'name': 'CFALayout', 'type': TYPES.Short},
|
||
|
50712: {'name': 'LinearizationTable', 'type': TYPES.Short},
|
||
|
50713: {'name': 'BlackLevelRepeatDim', 'type': TYPES.Short},
|
||
|
50714: {'name': 'BlackLevel', 'type': TYPES.Rational},
|
||
|
50715: {'name': 'BlackLevelDeltaH', 'type': TYPES.SRational},
|
||
|
50716: {'name': 'BlackLevelDeltaV', 'type': TYPES.SRational},
|
||
|
50717: {'name': 'WhiteLevel', 'type': TYPES.Short},
|
||
|
50718: {'name': 'DefaultScale', 'type': TYPES.Rational},
|
||
|
50719: {'name': 'DefaultCropOrigin', 'type': TYPES.Short},
|
||
|
50720: {'name': 'DefaultCropSize', 'type': TYPES.Short},
|
||
|
50721: {'name': 'ColorMatrix1', 'type': TYPES.SRational},
|
||
|
50722: {'name': 'ColorMatrix2', 'type': TYPES.SRational},
|
||
|
50723: {'name': 'CameraCalibration1', 'type': TYPES.SRational},
|
||
|
50724: {'name': 'CameraCalibration2', 'type': TYPES.SRational},
|
||
|
50725: {'name': 'ReductionMatrix1', 'type': TYPES.SRational},
|
||
|
50726: {'name': 'ReductionMatrix2', 'type': TYPES.SRational},
|
||
|
50727: {'name': 'AnalogBalance', 'type': TYPES.Rational},
|
||
|
50728: {'name': 'AsShotNeutral', 'type': TYPES.Short},
|
||
|
50729: {'name': 'AsShotWhiteXY', 'type': TYPES.Rational},
|
||
|
50730: {'name': 'BaselineExposure', 'type': TYPES.SRational},
|
||
|
50731: {'name': 'BaselineNoise', 'type': TYPES.Rational},
|
||
|
50732: {'name': 'BaselineSharpness', 'type': TYPES.Rational},
|
||
|
50733: {'name': 'BayerGreenSplit', 'type': TYPES.Long},
|
||
|
50734: {'name': 'LinearResponseLimit', 'type': TYPES.Rational},
|
||
|
50735: {'name': 'CameraSerialNumber', 'type': TYPES.Ascii},
|
||
|
50736: {'name': 'LensInfo', 'type': TYPES.Rational},
|
||
|
50737: {'name': 'ChromaBlurRadius', 'type': TYPES.Rational},
|
||
|
50738: {'name': 'AntiAliasStrength', 'type': TYPES.Rational},
|
||
|
50739: {'name': 'ShadowScale', 'type': TYPES.SRational},
|
||
|
50740: {'name': 'DNGPrivateData', 'type': TYPES.Byte},
|
||
|
50741: {'name': 'MakerNoteSafety', 'type': TYPES.Short},
|
||
|
50778: {'name': 'CalibrationIlluminant1', 'type': TYPES.Short},
|
||
|
50779: {'name': 'CalibrationIlluminant2', 'type': TYPES.Short},
|
||
|
50780: {'name': 'BestQualityScale', 'type': TYPES.Rational},
|
||
|
50781: {'name': 'RawDataUniqueID', 'type': TYPES.Byte},
|
||
|
50827: {'name': 'OriginalRawFileName', 'type': TYPES.Byte},
|
||
|
50828: {'name': 'OriginalRawFileData', 'type': TYPES.Undefined},
|
||
|
50829: {'name': 'ActiveArea', 'type': TYPES.Short},
|
||
|
50830: {'name': 'MaskedAreas', 'type': TYPES.Short},
|
||
|
50831: {'name': 'AsShotICCProfile', 'type': TYPES.Undefined},
|
||
|
50832: {'name': 'AsShotPreProfileMatrix', 'type': TYPES.SRational},
|
||
|
50833: {'name': 'CurrentICCProfile', 'type': TYPES.Undefined},
|
||
|
50834: {'name': 'CurrentPreProfileMatrix', 'type': TYPES.SRational},
|
||
|
50879: {'name': 'ColorimetricReference', 'type': TYPES.Short},
|
||
|
50931: {'name': 'CameraCalibrationSignature', 'type': TYPES.Byte},
|
||
|
50932: {'name': 'ProfileCalibrationSignature', 'type': TYPES.Byte},
|
||
|
50934: {'name': 'AsShotProfileName', 'type': TYPES.Byte},
|
||
|
50935: {'name': 'NoiseReductionApplied', 'type': TYPES.Rational},
|
||
|
50936: {'name': 'ProfileName', 'type': TYPES.Byte},
|
||
|
50937: {'name': 'ProfileHueSatMapDims', 'type': TYPES.Long},
|
||
|
50938: {'name': 'ProfileHueSatMapData1', 'type': TYPES.Float},
|
||
|
50939: {'name': 'ProfileHueSatMapData2', 'type': TYPES.Float},
|
||
|
50940: {'name': 'ProfileToneCurve', 'type': TYPES.Float},
|
||
|
50941: {'name': 'ProfileEmbedPolicy', 'type': TYPES.Long},
|
||
|
50942: {'name': 'ProfileCopyright', 'type': TYPES.Byte},
|
||
|
50964: {'name': 'ForwardMatrix1', 'type': TYPES.SRational},
|
||
|
50965: {'name': 'ForwardMatrix2', 'type': TYPES.SRational},
|
||
|
50966: {'name': 'PreviewApplicationName', 'type': TYPES.Byte},
|
||
|
50967: {'name': 'PreviewApplicationVersion', 'type': TYPES.Byte},
|
||
|
50968: {'name': 'PreviewSettingsName', 'type': TYPES.Byte},
|
||
|
50969: {'name': 'PreviewSettingsDigest', 'type': TYPES.Byte},
|
||
|
50970: {'name': 'PreviewColorSpace', 'type': TYPES.Long},
|
||
|
50971: {'name': 'PreviewDateTime', 'type': TYPES.Ascii},
|
||
|
50972: {'name': 'RawImageDigest', 'type': TYPES.Undefined},
|
||
|
50973: {'name': 'OriginalRawFileDigest', 'type': TYPES.Undefined},
|
||
|
50974: {'name': 'SubTileBlockSize', 'type': TYPES.Long},
|
||
|
50975: {'name': 'RowInterleaveFactor', 'type': TYPES.Long},
|
||
|
50981: {'name': 'ProfileLookTableDims', 'type': TYPES.Long},
|
||
|
50982: {'name': 'ProfileLookTableData', 'type': TYPES.Float},
|
||
|
51008: {'name': 'OpcodeList1', 'type': TYPES.Undefined},
|
||
|
51009: {'name': 'OpcodeList2', 'type': TYPES.Undefined},
|
||
|
51022: {'name': 'OpcodeList3', 'type': TYPES.Undefined},
|
||
|
60606: {'name': 'ZZZTestSlong1', 'type': TYPES.SLong},
|
||
|
60607: {'name': 'ZZZTestSlong2', 'type': TYPES.SLong},
|
||
|
60608: {'name': 'ZZZTestSByte', 'type': TYPES.SByte},
|
||
|
60609: {'name': 'ZZZTestSShort', 'type': TYPES.SShort},
|
||
|
60610: {'name': 'ZZZTestDFloat', 'type': TYPES.DFloat},},
|
||
|
'Exif': {33434: {'name': 'ExposureTime', 'type': TYPES.Rational},
|
||
|
33437: {'name': 'FNumber', 'type': TYPES.Rational},
|
||
|
34850: {'name': 'ExposureProgram', 'type': TYPES.Short},
|
||
|
34852: {'name': 'SpectralSensitivity', 'type': TYPES.Ascii},
|
||
|
34855: {'name': 'ISOSpeedRatings', 'type': TYPES.Short},
|
||
|
34856: {'name': 'OECF', 'type': TYPES.Undefined},
|
||
|
34864: {'name': 'SensitivityType', 'type': TYPES.Short},
|
||
|
34865: {'name': 'StandardOutputSensitivity', 'type': TYPES.Long},
|
||
|
34866: {'name': 'RecommendedExposureIndex', 'type': TYPES.Long},
|
||
|
34867: {'name': 'ISOSpeed', 'type': TYPES.Long},
|
||
|
34868: {'name': 'ISOSpeedLatitudeyyy', 'type': TYPES.Long},
|
||
|
34869: {'name': 'ISOSpeedLatitudezzz', 'type': TYPES.Long},
|
||
|
36864: {'name': 'ExifVersion', 'type': TYPES.Undefined},
|
||
|
36867: {'name': 'DateTimeOriginal', 'type': TYPES.Ascii},
|
||
|
36868: {'name': 'DateTimeDigitized', 'type': TYPES.Ascii},
|
||
|
36880: {'name': 'OffsetTime', 'type': TYPES.Ascii},
|
||
|
36881: {'name': 'OffsetTimeOriginal', 'type': TYPES.Ascii},
|
||
|
36882: {'name': 'OffsetTimeDigitized', 'type': TYPES.Ascii},
|
||
|
37121: {'name': 'ComponentsConfiguration', 'type': TYPES.Undefined},
|
||
|
37122: {'name': 'CompressedBitsPerPixel', 'type': TYPES.Rational},
|
||
|
37377: {'name': 'ShutterSpeedValue', 'type': TYPES.SRational},
|
||
|
37378: {'name': 'ApertureValue', 'type': TYPES.Rational},
|
||
|
37379: {'name': 'BrightnessValue', 'type': TYPES.SRational},
|
||
|
37380: {'name': 'ExposureBiasValue', 'type': TYPES.SRational},
|
||
|
37381: {'name': 'MaxApertureValue', 'type': TYPES.Rational},
|
||
|
37382: {'name': 'SubjectDistance', 'type': TYPES.Rational},
|
||
|
37383: {'name': 'MeteringMode', 'type': TYPES.Short},
|
||
|
37384: {'name': 'LightSource', 'type': TYPES.Short},
|
||
|
37385: {'name': 'Flash', 'type': TYPES.Short},
|
||
|
37386: {'name': 'FocalLength', 'type': TYPES.Rational},
|
||
|
37396: {'name': 'SubjectArea', 'type': TYPES.Short},
|
||
|
37500: {'name': 'MakerNote', 'type': TYPES.Undefined},
|
||
|
37510: {'name': 'UserComment', 'type': TYPES.Undefined},
|
||
|
37520: {'name': 'SubSecTime', 'type': TYPES.Ascii},
|
||
|
37521: {'name': 'SubSecTimeOriginal', 'type': TYPES.Ascii},
|
||
|
37522: {'name': 'SubSecTimeDigitized', 'type': TYPES.Ascii},
|
||
|
37888: {'name': 'Temperature', 'type': TYPES.SRational},
|
||
|
37889: {'name': 'Humidity', 'type': TYPES.Rational},
|
||
|
37890: {'name': 'Pressure', 'type': TYPES.Rational},
|
||
|
37891: {'name': 'WaterDepth', 'type': TYPES.SRational},
|
||
|
37892: {'name': 'Acceleration', 'type': TYPES.Rational},
|
||
|
37893: {'name': 'CameraElevationAngle', 'type': TYPES.SRational},
|
||
|
40960: {'name': 'FlashpixVersion', 'type': TYPES.Undefined},
|
||
|
40961: {'name': 'ColorSpace', 'type': TYPES.Short},
|
||
|
40962: {'name': 'PixelXDimension', 'type': TYPES.Long},
|
||
|
40963: {'name': 'PixelYDimension', 'type': TYPES.Long},
|
||
|
40964: {'name': 'RelatedSoundFile', 'type': TYPES.Ascii},
|
||
|
40965: {'name': 'InteroperabilityTag', 'type': TYPES.Long},
|
||
|
41483: {'name': 'FlashEnergy', 'type': TYPES.Rational},
|
||
|
41484: {'name': 'SpatialFrequencyResponse', 'type': TYPES.Undefined},
|
||
|
41486: {'name': 'FocalPlaneXResolution', 'type': TYPES.Rational},
|
||
|
41487: {'name': 'FocalPlaneYResolution', 'type': TYPES.Rational},
|
||
|
41488: {'name': 'FocalPlaneResolutionUnit', 'type': TYPES.Short},
|
||
|
41492: {'name': 'SubjectLocation', 'type': TYPES.Short},
|
||
|
41493: {'name': 'ExposureIndex', 'type': TYPES.Rational},
|
||
|
41495: {'name': 'SensingMethod', 'type': TYPES.Short},
|
||
|
41728: {'name': 'FileSource', 'type': TYPES.Undefined},
|
||
|
41729: {'name': 'SceneType', 'type': TYPES.Undefined},
|
||
|
41730: {'name': 'CFAPattern', 'type': TYPES.Undefined},
|
||
|
41985: {'name': 'CustomRendered', 'type': TYPES.Short},
|
||
|
41986: {'name': 'ExposureMode', 'type': TYPES.Short},
|
||
|
41987: {'name': 'WhiteBalance', 'type': TYPES.Short},
|
||
|
41988: {'name': 'DigitalZoomRatio', 'type': TYPES.Rational},
|
||
|
41989: {'name': 'FocalLengthIn35mmFilm', 'type': TYPES.Short},
|
||
|
41990: {'name': 'SceneCaptureType', 'type': TYPES.Short},
|
||
|
41991: {'name': 'GainControl', 'type': TYPES.Short},
|
||
|
41992: {'name': 'Contrast', 'type': TYPES.Short},
|
||
|
41993: {'name': 'Saturation', 'type': TYPES.Short},
|
||
|
41994: {'name': 'Sharpness', 'type': TYPES.Short},
|
||
|
41995: {'name': 'DeviceSettingDescription', 'type': TYPES.Undefined},
|
||
|
41996: {'name': 'SubjectDistanceRange', 'type': TYPES.Short},
|
||
|
42016: {'name': 'ImageUniqueID', 'type': TYPES.Ascii},
|
||
|
42032: {'name': 'CameraOwnerName', 'type': TYPES.Ascii},
|
||
|
42033: {'name': 'BodySerialNumber', 'type': TYPES.Ascii},
|
||
|
42034: {'name': 'LensSpecification', 'type': TYPES.Rational},
|
||
|
42035: {'name': 'LensMake', 'type': TYPES.Ascii},
|
||
|
42036: {'name': 'LensModel', 'type': TYPES.Ascii},
|
||
|
42037: {'name': 'LensSerialNumber', 'type': TYPES.Ascii},
|
||
|
42240: {'name': 'Gamma', 'type': TYPES.Rational}},
|
||
|
'GPS': {0: {'name': 'GPSVersionID', 'type': TYPES.Byte},
|
||
|
1: {'name': 'GPSLatitudeRef', 'type': TYPES.Ascii},
|
||
|
2: {'name': 'GPSLatitude', 'type': TYPES.Rational},
|
||
|
3: {'name': 'GPSLongitudeRef', 'type': TYPES.Ascii},
|
||
|
4: {'name': 'GPSLongitude', 'type': TYPES.Rational},
|
||
|
5: {'name': 'GPSAltitudeRef', 'type': TYPES.Byte},
|
||
|
6: {'name': 'GPSAltitude', 'type': TYPES.Rational},
|
||
|
7: {'name': 'GPSTimeStamp', 'type': TYPES.Rational},
|
||
|
8: {'name': 'GPSSatellites', 'type': TYPES.Ascii},
|
||
|
9: {'name': 'GPSStatus', 'type': TYPES.Ascii},
|
||
|
10: {'name': 'GPSMeasureMode', 'type': TYPES.Ascii},
|
||
|
11: {'name': 'GPSDOP', 'type': TYPES.Rational},
|
||
|
12: {'name': 'GPSSpeedRef', 'type': TYPES.Ascii},
|
||
|
13: {'name': 'GPSSpeed', 'type': TYPES.Rational},
|
||
|
14: {'name': 'GPSTrackRef', 'type': TYPES.Ascii},
|
||
|
15: {'name': 'GPSTrack', 'type': TYPES.Rational},
|
||
|
16: {'name': 'GPSImgDirectionRef', 'type': TYPES.Ascii},
|
||
|
17: {'name': 'GPSImgDirection', 'type': TYPES.Rational},
|
||
|
18: {'name': 'GPSMapDatum', 'type': TYPES.Ascii},
|
||
|
19: {'name': 'GPSDestLatitudeRef', 'type': TYPES.Ascii},
|
||
|
20: {'name': 'GPSDestLatitude', 'type': TYPES.Rational},
|
||
|
21: {'name': 'GPSDestLongitudeRef', 'type': TYPES.Ascii},
|
||
|
22: {'name': 'GPSDestLongitude', 'type': TYPES.Rational},
|
||
|
23: {'name': 'GPSDestBearingRef', 'type': TYPES.Ascii},
|
||
|
24: {'name': 'GPSDestBearing', 'type': TYPES.Rational},
|
||
|
25: {'name': 'GPSDestDistanceRef', 'type': TYPES.Ascii},
|
||
|
26: {'name': 'GPSDestDistance', 'type': TYPES.Rational},
|
||
|
27: {'name': 'GPSProcessingMethod', 'type': TYPES.Undefined},
|
||
|
28: {'name': 'GPSAreaInformation', 'type': TYPES.Undefined},
|
||
|
29: {'name': 'GPSDateStamp', 'type': TYPES.Ascii},
|
||
|
30: {'name': 'GPSDifferential', 'type': TYPES.Short},
|
||
|
31: {'name': 'GPSHPositioningError', 'type': TYPES.Rational}},
|
||
|
'Interop': {1: {'name': 'InteroperabilityIndex', 'type': TYPES.Ascii}},
|
||
|
}
|
||
|
|
||
|
TAGS["0th"] = TAGS["Image"]
|
||
|
TAGS["1st"] = TAGS["Image"]
|
||
|
|
||
|
class ImageIFD:
|
||
|
"""Exif tag number reference - 0th IFD"""
|
||
|
ProcessingSoftware = 11
|
||
|
NewSubfileType = 254
|
||
|
SubfileType = 255
|
||
|
ImageWidth = 256
|
||
|
ImageLength = 257
|
||
|
BitsPerSample = 258
|
||
|
Compression = 259
|
||
|
PhotometricInterpretation = 262
|
||
|
Threshholding = 263
|
||
|
CellWidth = 264
|
||
|
CellLength = 265
|
||
|
FillOrder = 266
|
||
|
DocumentName = 269
|
||
|
ImageDescription = 270
|
||
|
Make = 271
|
||
|
Model = 272
|
||
|
StripOffsets = 273
|
||
|
Orientation = 274
|
||
|
SamplesPerPixel = 277
|
||
|
RowsPerStrip = 278
|
||
|
StripByteCounts = 279
|
||
|
XResolution = 282
|
||
|
YResolution = 283
|
||
|
PlanarConfiguration = 284
|
||
|
GrayResponseUnit = 290
|
||
|
GrayResponseCurve = 291
|
||
|
T4Options = 292
|
||
|
T6Options = 293
|
||
|
ResolutionUnit = 296
|
||
|
TransferFunction = 301
|
||
|
Software = 305
|
||
|
DateTime = 306
|
||
|
Artist = 315
|
||
|
HostComputer = 316
|
||
|
Predictor = 317
|
||
|
WhitePoint = 318
|
||
|
PrimaryChromaticities = 319
|
||
|
ColorMap = 320
|
||
|
HalftoneHints = 321
|
||
|
TileWidth = 322
|
||
|
TileLength = 323
|
||
|
TileOffsets = 324
|
||
|
TileByteCounts = 325
|
||
|
SubIFDs = 330
|
||
|
InkSet = 332
|
||
|
InkNames = 333
|
||
|
NumberOfInks = 334
|
||
|
DotRange = 336
|
||
|
TargetPrinter = 337
|
||
|
ExtraSamples = 338
|
||
|
SampleFormat = 339
|
||
|
SMinSampleValue = 340
|
||
|
SMaxSampleValue = 341
|
||
|
TransferRange = 342
|
||
|
ClipPath = 343
|
||
|
XClipPathUnits = 344
|
||
|
YClipPathUnits = 345
|
||
|
Indexed = 346
|
||
|
JPEGTables = 347
|
||
|
OPIProxy = 351
|
||
|
JPEGProc = 512
|
||
|
JPEGInterchangeFormat = 513
|
||
|
JPEGInterchangeFormatLength = 514
|
||
|
JPEGRestartInterval = 515
|
||
|
JPEGLosslessPredictors = 517
|
||
|
JPEGPointTransforms = 518
|
||
|
JPEGQTables = 519
|
||
|
JPEGDCTables = 520
|
||
|
JPEGACTables = 521
|
||
|
YCbCrCoefficients = 529
|
||
|
YCbCrSubSampling = 530
|
||
|
YCbCrPositioning = 531
|
||
|
ReferenceBlackWhite = 532
|
||
|
XMLPacket = 700
|
||
|
Rating = 18246
|
||
|
RatingPercent = 18249
|
||
|
ImageID = 32781
|
||
|
CFARepeatPatternDim = 33421
|
||
|
CFAPattern = 33422
|
||
|
BatteryLevel = 33423
|
||
|
Copyright = 33432
|
||
|
ExposureTime = 33434
|
||
|
ImageResources = 34377
|
||
|
ExifTag = 34665
|
||
|
InterColorProfile = 34675
|
||
|
GPSTag = 34853
|
||
|
Interlace = 34857
|
||
|
TimeZoneOffset = 34858
|
||
|
SelfTimerMode = 34859
|
||
|
FlashEnergy = 37387
|
||
|
SpatialFrequencyResponse = 37388
|
||
|
Noise = 37389
|
||
|
FocalPlaneXResolution = 37390
|
||
|
FocalPlaneYResolution = 37391
|
||
|
FocalPlaneResolutionUnit = 37392
|
||
|
ImageNumber = 37393
|
||
|
SecurityClassification = 37394
|
||
|
ImageHistory = 37395
|
||
|
ExposureIndex = 37397
|
||
|
TIFFEPStandardID = 37398
|
||
|
SensingMethod = 37399
|
||
|
XPTitle = 40091
|
||
|
XPComment = 40092
|
||
|
XPAuthor = 40093
|
||
|
XPKeywords = 40094
|
||
|
XPSubject = 40095
|
||
|
PrintImageMatching = 50341
|
||
|
DNGVersion = 50706
|
||
|
DNGBackwardVersion = 50707
|
||
|
UniqueCameraModel = 50708
|
||
|
LocalizedCameraModel = 50709
|
||
|
CFAPlaneColor = 50710
|
||
|
CFALayout = 50711
|
||
|
LinearizationTable = 50712
|
||
|
BlackLevelRepeatDim = 50713
|
||
|
BlackLevel = 50714
|
||
|
BlackLevelDeltaH = 50715
|
||
|
BlackLevelDeltaV = 50716
|
||
|
WhiteLevel = 50717
|
||
|
DefaultScale = 50718
|
||
|
DefaultCropOrigin = 50719
|
||
|
DefaultCropSize = 50720
|
||
|
ColorMatrix1 = 50721
|
||
|
ColorMatrix2 = 50722
|
||
|
CameraCalibration1 = 50723
|
||
|
CameraCalibration2 = 50724
|
||
|
ReductionMatrix1 = 50725
|
||
|
ReductionMatrix2 = 50726
|
||
|
AnalogBalance = 50727
|
||
|
AsShotNeutral = 50728
|
||
|
AsShotWhiteXY = 50729
|
||
|
BaselineExposure = 50730
|
||
|
BaselineNoise = 50731
|
||
|
BaselineSharpness = 50732
|
||
|
BayerGreenSplit = 50733
|
||
|
LinearResponseLimit = 50734
|
||
|
CameraSerialNumber = 50735
|
||
|
LensInfo = 50736
|
||
|
ChromaBlurRadius = 50737
|
||
|
AntiAliasStrength = 50738
|
||
|
ShadowScale = 50739
|
||
|
DNGPrivateData = 50740
|
||
|
MakerNoteSafety = 50741
|
||
|
CalibrationIlluminant1 = 50778
|
||
|
CalibrationIlluminant2 = 50779
|
||
|
BestQualityScale = 50780
|
||
|
RawDataUniqueID = 50781
|
||
|
OriginalRawFileName = 50827
|
||
|
OriginalRawFileData = 50828
|
||
|
ActiveArea = 50829
|
||
|
MaskedAreas = 50830
|
||
|
AsShotICCProfile = 50831
|
||
|
AsShotPreProfileMatrix = 50832
|
||
|
CurrentICCProfile = 50833
|
||
|
CurrentPreProfileMatrix = 50834
|
||
|
ColorimetricReference = 50879
|
||
|
CameraCalibrationSignature = 50931
|
||
|
ProfileCalibrationSignature = 50932
|
||
|
AsShotProfileName = 50934
|
||
|
NoiseReductionApplied = 50935
|
||
|
ProfileName = 50936
|
||
|
ProfileHueSatMapDims = 50937
|
||
|
ProfileHueSatMapData1 = 50938
|
||
|
ProfileHueSatMapData2 = 50939
|
||
|
ProfileToneCurve = 50940
|
||
|
ProfileEmbedPolicy = 50941
|
||
|
ProfileCopyright = 50942
|
||
|
ForwardMatrix1 = 50964
|
||
|
ForwardMatrix2 = 50965
|
||
|
PreviewApplicationName = 50966
|
||
|
PreviewApplicationVersion = 50967
|
||
|
PreviewSettingsName = 50968
|
||
|
PreviewSettingsDigest = 50969
|
||
|
PreviewColorSpace = 50970
|
||
|
PreviewDateTime = 50971
|
||
|
RawImageDigest = 50972
|
||
|
OriginalRawFileDigest = 50973
|
||
|
SubTileBlockSize = 50974
|
||
|
RowInterleaveFactor = 50975
|
||
|
ProfileLookTableDims = 50981
|
||
|
ProfileLookTableData = 50982
|
||
|
OpcodeList1 = 51008
|
||
|
OpcodeList2 = 51009
|
||
|
OpcodeList3 = 51022
|
||
|
NoiseProfile = 51041
|
||
|
ZZZTestSlong1 = 60606
|
||
|
ZZZTestSlong2 = 60607
|
||
|
ZZZTestSByte = 60608
|
||
|
ZZZTestSShort = 60609
|
||
|
ZZZTestDFloat = 60610
|
||
|
|
||
|
|
||
|
class ExifIFD:
|
||
|
"""Exif tag number reference - Exif IFD"""
|
||
|
ExposureTime = 33434
|
||
|
FNumber = 33437
|
||
|
ExposureProgram = 34850
|
||
|
SpectralSensitivity = 34852
|
||
|
ISOSpeedRatings = 34855
|
||
|
OECF = 34856
|
||
|
SensitivityType = 34864
|
||
|
StandardOutputSensitivity = 34865
|
||
|
RecommendedExposureIndex = 34866
|
||
|
ISOSpeed = 34867
|
||
|
ISOSpeedLatitudeyyy = 34868
|
||
|
ISOSpeedLatitudezzz = 34869
|
||
|
ExifVersion = 36864
|
||
|
DateTimeOriginal = 36867
|
||
|
DateTimeDigitized = 36868
|
||
|
OffsetTime = 36880
|
||
|
OffsetTimeOriginal = 36881
|
||
|
OffsetTimeDigitized = 36882
|
||
|
ComponentsConfiguration = 37121
|
||
|
CompressedBitsPerPixel = 37122
|
||
|
ShutterSpeedValue = 37377
|
||
|
ApertureValue = 37378
|
||
|
BrightnessValue = 37379
|
||
|
ExposureBiasValue = 37380
|
||
|
MaxApertureValue = 37381
|
||
|
SubjectDistance = 37382
|
||
|
MeteringMode = 37383
|
||
|
LightSource = 37384
|
||
|
Flash = 37385
|
||
|
FocalLength = 37386
|
||
|
Temperature = 37888
|
||
|
Humidity = 37889
|
||
|
Pressure = 37890
|
||
|
WaterDepth = 37891
|
||
|
Acceleration = 37892
|
||
|
CameraElevationAngle = 37893
|
||
|
SubjectArea = 37396
|
||
|
MakerNote = 37500
|
||
|
UserComment = 37510
|
||
|
SubSecTime = 37520
|
||
|
SubSecTimeOriginal = 37521
|
||
|
SubSecTimeDigitized = 37522
|
||
|
FlashpixVersion = 40960
|
||
|
ColorSpace = 40961
|
||
|
PixelXDimension = 40962
|
||
|
PixelYDimension = 40963
|
||
|
RelatedSoundFile = 40964
|
||
|
InteroperabilityTag = 40965
|
||
|
FlashEnergy = 41483
|
||
|
SpatialFrequencyResponse = 41484
|
||
|
FocalPlaneXResolution = 41486
|
||
|
FocalPlaneYResolution = 41487
|
||
|
FocalPlaneResolutionUnit = 41488
|
||
|
SubjectLocation = 41492
|
||
|
ExposureIndex = 41493
|
||
|
SensingMethod = 41495
|
||
|
FileSource = 41728
|
||
|
SceneType = 41729
|
||
|
CFAPattern = 41730
|
||
|
CustomRendered = 41985
|
||
|
ExposureMode = 41986
|
||
|
WhiteBalance = 41987
|
||
|
DigitalZoomRatio = 41988
|
||
|
FocalLengthIn35mmFilm = 41989
|
||
|
SceneCaptureType = 41990
|
||
|
GainControl = 41991
|
||
|
Contrast = 41992
|
||
|
Saturation = 41993
|
||
|
Sharpness = 41994
|
||
|
DeviceSettingDescription = 41995
|
||
|
SubjectDistanceRange = 41996
|
||
|
ImageUniqueID = 42016
|
||
|
CameraOwnerName = 42032
|
||
|
BodySerialNumber = 42033
|
||
|
LensSpecification = 42034
|
||
|
LensMake = 42035
|
||
|
LensModel = 42036
|
||
|
LensSerialNumber = 42037
|
||
|
Gamma = 42240
|
||
|
|
||
|
|
||
|
class GPSIFD:
|
||
|
"""Exif tag number reference - GPS IFD"""
|
||
|
GPSVersionID = 0
|
||
|
GPSLatitudeRef = 1
|
||
|
GPSLatitude = 2
|
||
|
GPSLongitudeRef = 3
|
||
|
GPSLongitude = 4
|
||
|
GPSAltitudeRef = 5
|
||
|
GPSAltitude = 6
|
||
|
GPSTimeStamp = 7
|
||
|
GPSSatellites = 8
|
||
|
GPSStatus = 9
|
||
|
GPSMeasureMode = 10
|
||
|
GPSDOP = 11
|
||
|
GPSSpeedRef = 12
|
||
|
GPSSpeed = 13
|
||
|
GPSTrackRef = 14
|
||
|
GPSTrack = 15
|
||
|
GPSImgDirectionRef = 16
|
||
|
GPSImgDirection = 17
|
||
|
GPSMapDatum = 18
|
||
|
GPSDestLatitudeRef = 19
|
||
|
GPSDestLatitude = 20
|
||
|
GPSDestLongitudeRef = 21
|
||
|
GPSDestLongitude = 22
|
||
|
GPSDestBearingRef = 23
|
||
|
GPSDestBearing = 24
|
||
|
GPSDestDistanceRef = 25
|
||
|
GPSDestDistance = 26
|
||
|
GPSProcessingMethod = 27
|
||
|
GPSAreaInformation = 28
|
||
|
GPSDateStamp = 29
|
||
|
GPSDifferential = 30
|
||
|
GPSHPositioningError = 31
|
||
|
|
||
|
|
||
|
class InteropIFD:
|
||
|
"""Exif tag number reference - Interoperability IFD"""
|
||
|
InteroperabilityIndex = 1
|