You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
316 lines
8.6 KiB
316 lines
8.6 KiB
6 years ago
|
#
|
||
|
# The Python Imaging Library.
|
||
|
# $Id$
|
||
|
#
|
||
|
# EXIF tags
|
||
|
#
|
||
|
# Copyright (c) 2003 by Secret Labs AB
|
||
|
#
|
||
|
# See the README file for information on usage and redistribution.
|
||
|
#
|
||
|
|
||
|
##
|
||
|
# This module provides constants and clear-text names for various
|
||
|
# well-known EXIF tags.
|
||
|
##
|
||
|
|
||
|
##
|
||
|
# Maps EXIF tags to tag names.
|
||
|
|
||
|
TAGS = {
|
||
|
|
||
|
# possibly incomplete
|
||
|
0x000b: "ProcessingSoftware",
|
||
|
0x00fe: "NewSubfileType",
|
||
|
0x00ff: "SubfileType",
|
||
|
0x0100: "ImageWidth",
|
||
|
0x0101: "ImageLength",
|
||
|
0x0102: "BitsPerSample",
|
||
|
0x0103: "Compression",
|
||
|
0x0106: "PhotometricInterpretation",
|
||
|
0x0107: "Thresholding",
|
||
|
0x0108: "CellWidth",
|
||
|
0x0109: "CellLength",
|
||
|
0x010a: "FillOrder",
|
||
|
0x010d: "DocumentName",
|
||
|
0x010e: "ImageDescription",
|
||
|
0x010f: "Make",
|
||
|
0x0110: "Model",
|
||
|
0x0111: "StripOffsets",
|
||
|
0x0112: "Orientation",
|
||
|
0x0115: "SamplesPerPixel",
|
||
|
0x0116: "RowsPerStrip",
|
||
|
0x0117: "StripByteCounts",
|
||
|
0x0118: "MinSampleValue",
|
||
|
0x0119: "MaxSampleValue",
|
||
|
0x011a: "XResolution",
|
||
|
0x011b: "YResolution",
|
||
|
0x011c: "PlanarConfiguration",
|
||
|
0x011d: "PageName",
|
||
|
0x0120: "FreeOffsets",
|
||
|
0x0121: "FreeByteCounts",
|
||
|
0x0122: "GrayResponseUnit",
|
||
|
0x0123: "GrayResponseCurve",
|
||
|
0x0124: "T4Options",
|
||
|
0x0125: "T6Options",
|
||
|
0x0128: "ResolutionUnit",
|
||
|
0x0129: "PageNumber",
|
||
|
0x012d: "TransferFunction",
|
||
|
0x0131: "Software",
|
||
|
0x0132: "DateTime",
|
||
|
0x013b: "Artist",
|
||
|
0x013c: "HostComputer",
|
||
|
0x013d: "Predictor",
|
||
|
0x013e: "WhitePoint",
|
||
|
0x013f: "PrimaryChromaticities",
|
||
|
0x0140: "ColorMap",
|
||
|
0x0141: "HalftoneHints",
|
||
|
0x0142: "TileWidth",
|
||
|
0x0143: "TileLength",
|
||
|
0x0144: "TileOffsets",
|
||
|
0x0145: "TileByteCounts",
|
||
|
0x014a: "SubIFDs",
|
||
|
0x014c: "InkSet",
|
||
|
0x014d: "InkNames",
|
||
|
0x014e: "NumberOfInks",
|
||
|
0x0150: "DotRange",
|
||
|
0x0151: "TargetPrinter",
|
||
|
0x0152: "ExtraSamples",
|
||
|
0x0153: "SampleFormat",
|
||
|
0x0154: "SMinSampleValue",
|
||
|
0x0155: "SMaxSampleValue",
|
||
|
0x0156: "TransferRange",
|
||
|
0x0157: "ClipPath",
|
||
|
0x0158: "XClipPathUnits",
|
||
|
0x0159: "YClipPathUnits",
|
||
|
0x015a: "Indexed",
|
||
|
0x015b: "JPEGTables",
|
||
|
0x015f: "OPIProxy",
|
||
|
0x0200: "JPEGProc",
|
||
|
0x0201: "JpegIFOffset",
|
||
|
0x0202: "JpegIFByteCount",
|
||
|
0x0203: "JpegRestartInterval",
|
||
|
0x0205: "JpegLosslessPredictors",
|
||
|
0x0206: "JpegPointTransforms",
|
||
|
0x0207: "JpegQTables",
|
||
|
0x0208: "JpegDCTables",
|
||
|
0x0209: "JpegACTables",
|
||
|
0x0211: "YCbCrCoefficients",
|
||
|
0x0212: "YCbCrSubSampling",
|
||
|
0x0213: "YCbCrPositioning",
|
||
|
0x0214: "ReferenceBlackWhite",
|
||
|
0x02bc: "XMLPacket",
|
||
|
0x1000: "RelatedImageFileFormat",
|
||
|
0x1001: "RelatedImageWidth",
|
||
|
0x1002: "RelatedImageLength",
|
||
|
0x4746: "Rating",
|
||
|
0x4749: "RatingPercent",
|
||
|
0x800d: "ImageID",
|
||
|
0x828d: "CFARepeatPatternDim",
|
||
|
0x828e: "CFAPattern",
|
||
|
0x828f: "BatteryLevel",
|
||
|
0x8298: "Copyright",
|
||
|
0x829a: "ExposureTime",
|
||
|
0x829d: "FNumber",
|
||
|
0x83bb: "IPTCNAA",
|
||
|
0x8649: "ImageResources",
|
||
|
0x8769: "ExifOffset",
|
||
|
0x8773: "InterColorProfile",
|
||
|
0x8822: "ExposureProgram",
|
||
|
0x8824: "SpectralSensitivity",
|
||
|
0x8825: "GPSInfo",
|
||
|
0x8827: "ISOSpeedRatings",
|
||
|
0x8828: "OECF",
|
||
|
0x8829: "Interlace",
|
||
|
0x882a: "TimeZoneOffset",
|
||
|
0x882b: "SelfTimerMode",
|
||
|
0x9000: "ExifVersion",
|
||
|
0x9003: "DateTimeOriginal",
|
||
|
0x9004: "DateTimeDigitized",
|
||
|
0x9101: "ComponentsConfiguration",
|
||
|
0x9102: "CompressedBitsPerPixel",
|
||
|
0x9201: "ShutterSpeedValue",
|
||
|
0x9202: "ApertureValue",
|
||
|
0x9203: "BrightnessValue",
|
||
|
0x9204: "ExposureBiasValue",
|
||
|
0x9205: "MaxApertureValue",
|
||
|
0x9206: "SubjectDistance",
|
||
|
0x9207: "MeteringMode",
|
||
|
0x9208: "LightSource",
|
||
|
0x9209: "Flash",
|
||
|
0x920a: "FocalLength",
|
||
|
0x920b: "FlashEnergy",
|
||
|
0x920c: "SpatialFrequencyResponse",
|
||
|
0x920d: "Noise",
|
||
|
0x9211: "ImageNumber",
|
||
|
0x9212: "SecurityClassification",
|
||
|
0x9213: "ImageHistory",
|
||
|
0x9214: "SubjectLocation",
|
||
|
0x9215: "ExposureIndex",
|
||
|
0x9216: "TIFF/EPStandardID",
|
||
|
0x927c: "MakerNote",
|
||
|
0x9286: "UserComment",
|
||
|
0x9290: "SubsecTime",
|
||
|
0x9291: "SubsecTimeOriginal",
|
||
|
0x9292: "SubsecTimeDigitized",
|
||
|
0x9c9b: "XPTitle",
|
||
|
0x9c9c: "XPComment",
|
||
|
0x9c9d: "XPAuthor",
|
||
|
0x9c9e: "XPKeywords",
|
||
|
0x9c9f: "XPSubject",
|
||
|
0xa000: "FlashPixVersion",
|
||
|
0xa001: "ColorSpace",
|
||
|
0xa002: "ExifImageWidth",
|
||
|
0xa003: "ExifImageHeight",
|
||
|
0xa004: "RelatedSoundFile",
|
||
|
0xa005: "ExifInteroperabilityOffset",
|
||
|
0xa20b: "FlashEnergy",
|
||
|
0xa20c: "SpatialFrequencyResponse",
|
||
|
0xa20e: "FocalPlaneXResolution",
|
||
|
0xa20f: "FocalPlaneYResolution",
|
||
|
0xa210: "FocalPlaneResolutionUnit",
|
||
|
0xa214: "SubjectLocation",
|
||
|
0xa215: "ExposureIndex",
|
||
|
0xa217: "SensingMethod",
|
||
|
0xa300: "FileSource",
|
||
|
0xa301: "SceneType",
|
||
|
0xa302: "CFAPattern",
|
||
|
0xa401: "CustomRendered",
|
||
|
0xa402: "ExposureMode",
|
||
|
0xa403: "WhiteBalance",
|
||
|
0xa404: "DigitalZoomRatio",
|
||
|
0xa405: "FocalLengthIn35mmFilm",
|
||
|
0xa406: "SceneCaptureType",
|
||
|
0xa407: "GainControl",
|
||
|
0xa408: "Contrast",
|
||
|
0xa409: "Saturation",
|
||
|
0xa40a: "Sharpness",
|
||
|
0xa40b: "DeviceSettingDescription",
|
||
|
0xa40c: "SubjectDistanceRange",
|
||
|
0xa420: "ImageUniqueID",
|
||
|
0xa430: "CameraOwnerName",
|
||
|
0xa431: "BodySerialNumber",
|
||
|
0xa432: "LensSpecification",
|
||
|
0xa433: "LensMake",
|
||
|
0xa434: "LensModel",
|
||
|
0xa435: "LensSerialNumber",
|
||
|
0xa500: "Gamma",
|
||
|
0xc4a5: "PrintImageMatching",
|
||
|
0xc612: "DNGVersion",
|
||
|
0xc613: "DNGBackwardVersion",
|
||
|
0xc614: "UniqueCameraModel",
|
||
|
0xc615: "LocalizedCameraModel",
|
||
|
0xc616: "CFAPlaneColor",
|
||
|
0xc617: "CFALayout",
|
||
|
0xc618: "LinearizationTable",
|
||
|
0xc619: "BlackLevelRepeatDim",
|
||
|
0xc61a: "BlackLevel",
|
||
|
0xc61b: "BlackLevelDeltaH",
|
||
|
0xc61c: "BlackLevelDeltaV",
|
||
|
0xc61d: "WhiteLevel",
|
||
|
0xc61e: "DefaultScale",
|
||
|
0xc61f: "DefaultCropOrigin",
|
||
|
0xc620: "DefaultCropSize",
|
||
|
0xc621: "ColorMatrix1",
|
||
|
0xc622: "ColorMatrix2",
|
||
|
0xc623: "CameraCalibration1",
|
||
|
0xc624: "CameraCalibration2",
|
||
|
0xc625: "ReductionMatrix1",
|
||
|
0xc626: "ReductionMatrix2",
|
||
|
0xc627: "AnalogBalance",
|
||
|
0xc628: "AsShotNeutral",
|
||
|
0xc629: "AsShotWhiteXY",
|
||
|
0xc62a: "BaselineExposure",
|
||
|
0xc62b: "BaselineNoise",
|
||
|
0xc62c: "BaselineSharpness",
|
||
|
0xc62d: "BayerGreenSplit",
|
||
|
0xc62e: "LinearResponseLimit",
|
||
|
0xc62f: "CameraSerialNumber",
|
||
|
0xc630: "LensInfo",
|
||
|
0xc631: "ChromaBlurRadius",
|
||
|
0xc632: "AntiAliasStrength",
|
||
|
0xc633: "ShadowScale",
|
||
|
0xc634: "DNGPrivateData",
|
||
|
0xc635: "MakerNoteSafety",
|
||
|
0xc65a: "CalibrationIlluminant1",
|
||
|
0xc65b: "CalibrationIlluminant2",
|
||
|
0xc65c: "BestQualityScale",
|
||
|
0xc65d: "RawDataUniqueID",
|
||
|
0xc68b: "OriginalRawFileName",
|
||
|
0xc68c: "OriginalRawFileData",
|
||
|
0xc68d: "ActiveArea",
|
||
|
0xc68e: "MaskedAreas",
|
||
|
0xc68f: "AsShotICCProfile",
|
||
|
0xc690: "AsShotPreProfileMatrix",
|
||
|
0xc691: "CurrentICCProfile",
|
||
|
0xc692: "CurrentPreProfileMatrix",
|
||
|
0xc6bf: "ColorimetricReference",
|
||
|
0xc6f3: "CameraCalibrationSignature",
|
||
|
0xc6f4: "ProfileCalibrationSignature",
|
||
|
0xc6f6: "AsShotProfileName",
|
||
|
0xc6f7: "NoiseReductionApplied",
|
||
|
0xc6f8: "ProfileName",
|
||
|
0xc6f9: "ProfileHueSatMapDims",
|
||
|
0xc6fa: "ProfileHueSatMapData1",
|
||
|
0xc6fb: "ProfileHueSatMapData2",
|
||
|
0xc6fc: "ProfileToneCurve",
|
||
|
0xc6fd: "ProfileEmbedPolicy",
|
||
|
0xc6fe: "ProfileCopyright",
|
||
|
0xc714: "ForwardMatrix1",
|
||
|
0xc715: "ForwardMatrix2",
|
||
|
0xc716: "PreviewApplicationName",
|
||
|
0xc717: "PreviewApplicationVersion",
|
||
|
0xc718: "PreviewSettingsName",
|
||
|
0xc719: "PreviewSettingsDigest",
|
||
|
0xc71a: "PreviewColorSpace",
|
||
|
0xc71b: "PreviewDateTime",
|
||
|
0xc71c: "RawImageDigest",
|
||
|
0xc71d: "OriginalRawFileDigest",
|
||
|
0xc71e: "SubTileBlockSize",
|
||
|
0xc71f: "RowInterleaveFactor",
|
||
|
0xc725: "ProfileLookTableDims",
|
||
|
0xc726: "ProfileLookTableData",
|
||
|
0xc740: "OpcodeList1",
|
||
|
0xc741: "OpcodeList2",
|
||
|
0xc74e: "OpcodeList3",
|
||
|
0xc761: "NoiseProfile"
|
||
|
}
|
||
|
|
||
|
##
|
||
|
# Maps EXIF GPS tags to tag names.
|
||
|
|
||
|
GPSTAGS = {
|
||
|
0: "GPSVersionID",
|
||
|
1: "GPSLatitudeRef",
|
||
|
2: "GPSLatitude",
|
||
|
3: "GPSLongitudeRef",
|
||
|
4: "GPSLongitude",
|
||
|
5: "GPSAltitudeRef",
|
||
|
6: "GPSAltitude",
|
||
|
7: "GPSTimeStamp",
|
||
|
8: "GPSSatellites",
|
||
|
9: "GPSStatus",
|
||
|
10: "GPSMeasureMode",
|
||
|
11: "GPSDOP",
|
||
|
12: "GPSSpeedRef",
|
||
|
13: "GPSSpeed",
|
||
|
14: "GPSTrackRef",
|
||
|
15: "GPSTrack",
|
||
|
16: "GPSImgDirectionRef",
|
||
|
17: "GPSImgDirection",
|
||
|
18: "GPSMapDatum",
|
||
|
19: "GPSDestLatitudeRef",
|
||
|
20: "GPSDestLatitude",
|
||
|
21: "GPSDestLongitudeRef",
|
||
|
22: "GPSDestLongitude",
|
||
|
23: "GPSDestBearingRef",
|
||
|
24: "GPSDestBearing",
|
||
|
25: "GPSDestDistanceRef",
|
||
|
26: "GPSDestDistance",
|
||
|
27: "GPSProcessingMethod",
|
||
|
28: "GPSAreaInformation",
|
||
|
29: "GPSDateStamp",
|
||
|
30: "GPSDifferential",
|
||
|
31: "GPSHPositioningError",
|
||
|
}
|