From 05e585291839f43847e92cb2ef7eda8ab4e9d7c6 Mon Sep 17 00:00:00 2001 From: KAMADA Ken'ichi Date: Tue, 6 Dec 2016 22:08:47 +0900 Subject: [PATCH] Add constants for tags defined in the Exif specification. --- src/tag.rs | 150 +++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 146 insertions(+), 4 deletions(-) diff --git a/src/tag.rs b/src/tag.rs index b3afc9b..005fcf5 100644 --- a/src/tag.rs +++ b/src/tag.rs @@ -149,11 +149,153 @@ generate_well_known_tag_constants!( /// structure of Exif data and will not be returned to the user. (InteropIFDPointer, 0xa005, "Interoperability IFD pointer"), - // TIFF attributes [EXIF23 4.6.4]. + // TIFF attributes [EXIF23 4.6.4 Table 4 and 4.6.8 Table 17]. + |Context::Tiff| - // Exif IFD attributes [EXIF23 4.6.5]. + (ImageWidth, 0x100, "Image width"), + (ImageLength, 0x101, "Image height"), + (BitsPerSample, 0x102, "Number of bits per component"), + (Compression, 0x103, "Compression scheme"), + (PhotometricInterpretation, 0x106, "Pixel composition"), + (ImageDescription, 0x10e, "Image title"), + (Make, 0x10f, "Manufacturer of image input equipment"), + (Model, 0x110, "Model of image input equipment"), + (StripOffsets, 0x111, "Image data location"), + (Orientation, 0x112, "Orientation of image"), + (SamplesPerPixel, 0x115, "Number of components"), + (RowsPerStrip, 0x116, "Number of rows per strip"), + (StripByteCounts, 0x117, "Bytes per compressed strip"), + (XResolution, 0x11a, "Image resolution in width direction"), + (YResolution, 0x11b, "Image resolution in height direction"), + (PlanarConfiguration, 0x11c, "Image data arrangement"), + (ResolutionUnit, 0x128, "Unit of X and Y resolution"), + (TransferFunction, 0x12d, "Transfer function"), + (Software, 0x131, "Software used"), + (DateTime, 0x132, "File change date and time"), + (Artist, 0x13b, "Person who created the image"), + (WhitePoint, 0x13e, "White point chromaticity"), + (PrimaryChromaticities, 0x13f, "Chromaticities of primaries"), + // (JPEGInterchangeFormat, 0x201, "Offset to JPEG SOI"), + // (JPEGInterchangeFormatLength, 0x202, "Bytes of JPEG data"), + (YCbCrCoefficients, 0x211, "Color space transformation matrix coefficients"), + (YCbCrSubSampling, 0x212, "Subsampling ratio of Y to C"), + (YCbCrPositioning, 0x213, "Y and C positioning"), + (ReferenceBlackWhite, 0x214, "Pair of black and white reference values"), + (Copyright, 0x8298, "Copyright holder"), - // GPS attributes [EXIF23 4.6.6]. + // Thumbnail Tiff attributes [EXIF23 4.6.4 Table 4 and 4.6.8 Table 21]. - // Interoperability attributes [EXIF23 4.6.7]. + // Exif IFD attributes [EXIF23 4.6.5 Table 7 and 4.6.8 Table 18]. + |Context::Exif| + + (ExposureTime, 0x829a, "Exposure time"), + (FNumber, 0x829d, "F number"), + (ExposureProgram, 0x8822, "Exposure program"), + (SpectralSensitivity, 0x8824, "Spectral sensitivity"), + (PhotographicSensitivity, 0x8827, "Photographic sensitivity"), + (OECF, 0x8828, "Optoelectric conversion factor"), + (SensitivityType, 0x8830, "Sensitivity type"), + (StandardOutputSensitivity, 0x8831, "Standard output sensitivity"), + (RecommendedExposureIndex, 0x8832, "Recommended exposure index"), + (ISOSpeed, 0x8833, "ISO speed"), + (ISOSpeedLatitudeyyy, 0x8834, "ISO speed latitude yyy"), + (ISOSpeedLatitudezzz, 0x8835, "ISO speed latitude zzz"), + (ExifVersion, 0x9000, "Exif version"), + (DateTimeOriginal, 0x9003, "Date and time of original data generation"), + (DateTimeDigitized, 0x9004, "Date and time of digital data generation"), + (ComponentsConfiguration, 0x9101, "Meaning of each component"), + (CompressedBitsPerPixel, 0x9102, "Image compression mode"), + (ShutterSpeedValue, 0x9201, "Shutter speed"), + (ApertureValue, 0x9202, "Aperture"), + (BrightnessValue, 0x9203, "Brightness"), + (ExposureBiasValue, 0x9204, "Exposure bias"), + (MaxApertureValue, 0x9205, "Maximum lens aperture"), + (SubjectDistance, 0x9206, "Subject distance"), + (MeteringMode, 0x9207, "Metering mode"), + (LightSource, 0x9208, "Light source"), + (Flash, 0x9209, "Flash"), + (FocalLength, 0x920a, "Lens focal length"), + (SubjectArea, 0x9214, "Subject area"), + (MakerNote, 0x927c, "Manufacturer notes"), + (UserComment, 0x9286, "User comments"), + (SubSecTime, 0x9290, "DateTime subseconds"), + (SubSecTimeOriginal, 0x9291, "DateTimeOriginal subseconds"), + (SubSecTimeDigitized, 0x9292, "DateTimeDigitized subseconds"), + (FlashpixVersion, 0xa000, "Supported Flashpix version"), + (ColorSpace, 0xa001, "Color space information"), + (PixelXDimension, 0xa002, "Valid image width"), + (PixelYDimension, 0xa003, "Valid image height"), + (RelatedSoundFile, 0xa004, "Related audio file"), + (FlashEnergy, 0xa20b, "Flash energy"), + (SpatialFrequencyResponse, 0xa20c, "Spatial frequency response"), + (FocalPlaneXResolution, 0xa20e, "Focal plane X resolution"), + (FocalPlaneYResolution, 0xa20f, "Focal plane Y resolution"), + (FocalPlaneResolutionUnit, 0xa210, "Focal plane resolution unit"), + (SubjectLocation, 0xa214, "Subject location"), + (ExposureIndex, 0xa215, "Exposure index"), + (SensingMethod, 0xa217, "Sensing method"), + (FileSource, 0xa300, "File source"), + (SceneType, 0xa301, "Scene type"), + (CFAPattern, 0xa302, "CFA pattern"), + (CustomRendered, 0xa401, "Custom image processing"), + (ExposureMode, 0xa402, "Exposure mode"), + (WhiteBalance, 0xa403, "White balance"), + (DigitalZoomRatio, 0xa404, "Digital zoom ratio"), + (FocalLengthIn35mmFilm, 0xa405, "Focal length in 35 mm film"), + (SceneCaptureType, 0xa406, "Scene capture type"), + (GainControl, 0xa407, "Gain control"), + (Contrast, 0xa408, "Contrast"), + (Saturation, 0xa409, "Saturation"), + (Sharpness, 0xa40a, "Sharpness"), + (DeviceSettingDescription, 0xa40b, "Device settings description"), + (SubjectDistanceRange, 0xa40c, "Subject distance range"), + (ImageUniqueID, 0xa420, "Unique image ID"), + (CameraOwnerName, 0xa430, "Camera owner name"), + (BodySerialNumber, 0xa431, "Body serial number"), + (LensSpecification, 0xa432, "Lens specification"), + (LensMake, 0xa433, "Lens make"), + (LensModel, 0xa434, "Lens model"), + (LensSerialNumber, 0xa435, "Lens serial number"), + (Gamma, 0xa500, "Gamma"), + + // GPS attributes [EXIF23 4.6.6 Table 15 and 4.6.8 Table 19]. + |Context::Gps| + + (GPSVersionID, 0x0, "GPS tag version"), + (GPSLatitudeRef, 0x1, "North or south latitude"), + (GPSLatitude, 0x2, "Latitude"), + (GPSLongitudeRef, 0x3, "East or West Longitude"), + (GPSLongitude, 0x4, "Longitude"), + (GPSAltitudeRef, 0x5, "Altitude reference"), + (GPSAltitude, 0x6, "Altitude"), + (GPSTimeStamp, 0x7, "GPS time (atomic clock)"), + (GPSSatellites, 0x8, "GPS satellites used for measurement"), + (GPSStatus, 0x9, "GPS receiver status"), + (GPSMeasureMode, 0xa, "GPS measurement mode"), + (GPSDOP, 0xb, "Measurement precision"), + (GPSSpeedRef, 0xc, "Speed unit"), + (GPSSpeed, 0xd, "Speed of GPS receiver"), + (GPSTrackRef, 0xe, "Reference for direction of movement"), + (GPSTrack, 0xf, "Direction of movement"), + (GPSImgDirectionRef, 0x10, "Reference for direction of image"), + (GPSImgDirection, 0x11, "Direction of image"), + (GPSMapDatum, 0x12, "Geodetic survey data used"), + (GPSDestLatitudeRef, 0x13, "Reference for latitude of destination"), + (GPSDestLatitude, 0x14, "Latitude of destination"), + (GPSDestLongitudeRef, 0x15, "Reference for longitude of destination"), + (GPSDestLongitude, 0x16, "Longitude of destination"), + (GPSDestBearingRef, 0x17, "Reference for bearing of destination"), + (GPSDestBearing, 0x18, "Bearing of destination"), + (GPSDestDistanceRef, 0x19, "Reference for distance to destination"), + (GPSDestDistance, 0x1a, "Distance to destination"), + (GPSProcessingMethod, 0x1b, "Name of GPS processing method"), + (GPSAreaInformation, 0x1c, "Name of GPS area"), + (GPSDateStamp, 0x1d, "GPS date"), + (GPSDifferential, 0x1e, "GPS differential correction"), + (GPSHPositioningError, 0x1f, "Horizontal positioning error"), + + // Interoperability attributes [EXIF23 4.6.7 Table 16 and 4.6.8 Table 20]. + |Context::Interop| + + (InteroperabilityIndex, 0x1, "Interoperability identification"), );