215 lines
10 KiB
C
215 lines
10 KiB
C
/**
|
|
* exif_defines.h - Defines for constants from Exif v2.3 standard
|
|
*
|
|
* Written 2019, David Imhoff <dimhoff.devel@gmail.com>
|
|
*
|
|
* This is free and unencumbered software released into the public domain.
|
|
*
|
|
* Anyone is free to copy, modify, publish, use, compile, sell, or
|
|
* distribute this software, either in source code form or as a compiled
|
|
* binary, for any purpose, commercial or non-commercial, and by any
|
|
* means.
|
|
*
|
|
* In jurisdictions that recognize copyright laws, the author or authors
|
|
* of this software dedicate any and all copyright interest in the
|
|
* software to the public domain. We make this dedication for the benefit
|
|
* of the public at large and to the detriment of our heirs and
|
|
* successors. We intend this dedication to be an overt act of
|
|
* relinquishment in perpetuity of all present and future rights to this
|
|
* software under copyright law.
|
|
*
|
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
|
* IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
|
|
* OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
|
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
|
* OTHER DEALINGS IN THE SOFTWARE.
|
|
*/
|
|
#ifndef __EXIF_DEFINES_H__
|
|
#define __EXIF_DEFINES_H__
|
|
|
|
// TIFF Rev. 6.0 Attribute Information Used in Exif
|
|
enum {
|
|
// A. Tags relating to image data structure
|
|
TagTiffImageWidth = 0x100, // Image width
|
|
TagTiffImageLength = 0x101, // Image height
|
|
TagTiffBitsPerSample = 0x102, // Number of bits per component
|
|
TagTiffCompression = 0x103, // Compression scheme
|
|
TagTiffPhotometricInterpretation = 0x106, // Pixel composition
|
|
TagTiffOrientation = 0x112, // Orientation of image
|
|
TagTiffSamplesPerPixel = 0x115, // Number of components
|
|
TagTiffPlanarConfiguration = 0x11C, // Image data arrangement
|
|
TagTiffYCbCrSubSampling = 0x212, // Subsampling ratio of Y to C
|
|
TagTiffYCbCrPositioning = 0x213, // Y and C positioning
|
|
TagTiffXResolution = 0x11A, // Image resolution in width direction
|
|
TagTiffYResolution = 0x11B, // Image resolution in height direction
|
|
TagTiffResolutionUnit = 0x128, // Unit of X and Y resolution
|
|
|
|
// B. Tags relating to recording offset
|
|
TagTiffStripOffsets = 0x111, // Image data location
|
|
TagTiffRowsPerStrip = 0x116, // Number of rows per strip
|
|
TagTiffStripByteCounts = 0x117, // Bytes per compressed strip
|
|
TagTiffJPEGInterchangeFormat = 0x201, // Offset to JPEG SOI
|
|
TagTiffJPEGInterchangeFormatLength = 0x202, // Bytes of JPEG data
|
|
|
|
// C. Tags relating to image data characteristics
|
|
TagTiffTransferFunction = 0x12D, // Transfer function
|
|
TagTiffWhitePoint = 0x13E, // White point chromaticity
|
|
TagTiffPrimaryChromaticities = 0x13F, // Chromaticities of primaries
|
|
TagTiffYCbCrCoefficients = 0x211, // Color space transformation matrix coefficients
|
|
TagTiffReferenceBlackWhite = 0x214, // Pair of black and white reference values
|
|
|
|
// D. Other tags
|
|
TagTiffDateTime = 0x132, // File change date and time
|
|
TagTiffImageDescription = 0x10E, // Image title
|
|
TagTiffMake = 0x10F, // Image input equipment manufacturer
|
|
TagTiffModel = 0x110, // Image input equipment model
|
|
TagTiffSoftware = 0x131, // Software used
|
|
TagTiffArtist = 0x13B, // Person who created the image
|
|
TagTiffCopyright = 0x8298, // Copyright holder
|
|
|
|
// Exif private IFD's
|
|
TagTiffExifIFD = 0x8769, // Exif IFD pointer
|
|
TagTiffGPSIFD = 0x8825, // Exif IFD pointer
|
|
TagTiffInteroperabilityIFD = 0xA005, // Exif IFD pointer
|
|
};
|
|
|
|
// Exif IFD Attribute Information
|
|
enum {
|
|
// Tags Relating to Version
|
|
TagExifVersion = 0x9000, // Exif version
|
|
TagExifFlashpixVersion = 0xA000, // Supported Flashpix version
|
|
|
|
// Tag Relating to Image Data Characteristics
|
|
TagExifColorSpace = 0xA001, // Color space information
|
|
TagExifGamma = 0xA500, // Gamma
|
|
|
|
// Tags Relating to Image Configuration
|
|
TagExifComponentsConfiguration = 0x9101, // Meaning of each component
|
|
TagExifCompressedBitsPerPixel = 0x9102, // Image compression mode
|
|
TagExifPixelXDimension = 0xA002, // Valid image width
|
|
TagExifPixelYDimension = 0xA003, // Valid image height
|
|
|
|
// Tags Relating to User Information
|
|
TagExifMakerNote = 0x927C, // Manufacturer notes
|
|
TagExifUserComment = 0x9286, // User comments
|
|
|
|
// Tag Relating to Related File Information
|
|
TagExifRelatedSoundFile = 0xA004, // Related audio file
|
|
|
|
// Tags Relating to Date and Time
|
|
TagExifDateTimeOriginal = 0x9003, // Date and time of original data generation
|
|
TagExifDateTimeDigitized = 0x9004, // Date and time of digital data generation
|
|
TagExifSubSecTime = 0x9290, // DateTime subseconds
|
|
TagExifSubSecTimeOriginal = 0x9291, // DateTimeOriginal subseconds
|
|
TagExifSubSecTimeDigitized = 0x9292, // DateTimeDigitized subseconds
|
|
|
|
// Tags Relating to Picture-Taking Conditions
|
|
TagExifExposureTime = 0x829A, // Exposure time
|
|
TagExifFNumber = 0x829D, // F number
|
|
TagExifExposureProgram = 0x8822, // Exposure program
|
|
TagExifSpectralSensitivity = 0x8824, // Spectral sensitivity
|
|
TagExifPhotographicSensitivity = 0x8827, // Photographic Sensitivity
|
|
TagExifOECF = 0x8828, // Optoelectric conversion factor
|
|
TagExifSensitivityType = 0x8830, // Sensitivity Type
|
|
TagExifStandardOutputSensitivity = 0x8831, // Standard Output Sensitivity
|
|
TagExifRecommendedExposureIndex = 0x8832, // Recommended ExposureIndex
|
|
TagExifISOSpeed = 0x8833, // ISO Speed
|
|
TagExifISOSpeedLatitudeyyy = 0x8834, // ISO Speed Latitude yyy
|
|
TagExifISOSpeedLatitudezzz = 0x8835, // ISO Speed Latitude zzz
|
|
TagExifShutterSpeedValue = 0x9201, // Shutter speed
|
|
TagExifApertureValue = 0x9202, // Aperture
|
|
TagExifBrightnessValue = 0x9203, // Brightness
|
|
TagExifExposureBiasValue = 0x9204, // Exposure bias
|
|
TagExifMaxApertureValue = 0x9205, // Maximum lens aperture
|
|
TagExifSubjectDistance = 0x9206, // Subject distance
|
|
TagExifMeteringMode = 0x9207, // Metering mode
|
|
TagExifLightSource = 0x9208, // Light source
|
|
TagExifFlash = 0x9209, // Flash
|
|
TagExifFocalLength = 0x920A, // Lens focal length
|
|
TagExifSubjectArea = 0x9214, // Subject area
|
|
TagExifFlashEnergy = 0xA20B, // Flash energy
|
|
TagExifSpatialFrequencyResponse = 0xA20C, // Spatial frequency response
|
|
TagExifFocalPlaneXResolution = 0xA20E, // Focal plane X resolution
|
|
TagExifFocalPlaneYResolution = 0xA20F, // Focal plane Y resolution
|
|
TagExifFocalPlaneResolutionUnit = 0xA210, // Focal plane resolution unit
|
|
TagExifSubjectLocation = 0xA214, // Subject location
|
|
TagExifExposureIndex = 0xA215, // Exposure index
|
|
TagExifSensingMethod = 0xA217, // Sensing method
|
|
TagExifFileSource = 0xA300, // File source
|
|
TagExifSceneType = 0xA301, // Scene type
|
|
TagExifCFAPattern = 0xA302, // CFA pattern
|
|
TagExifCustomRendered = 0xA401, // Custom image processing
|
|
TagExifExposureMode = 0xA402, // Exposure mode
|
|
TagExifWhiteBalance = 0xA403, // White balance
|
|
TagExifDigitalZoomRatio = 0xA404, // Digital zoom ratio
|
|
TagExifFocalLengthIn35mmFilm = 0xA405, // Focal length in 35 mm film
|
|
TagExifSceneCaptureType = 0xA406, // Scene capture type
|
|
TagExifGainControl = 0xA407, // Gain control
|
|
TagExifContrast = 0xA408, // Contrast
|
|
TagExifSaturation = 0xA409, // Saturation
|
|
TagExifSharpness = 0xA40A, // Sharpness
|
|
TagExifDeviceSettingDescription = 0xA40B, // Device settings description
|
|
TagExifSubjectDistanceRange = 0xA40C, // Subject distance range
|
|
|
|
// Other Tags
|
|
TagExifImageUniqueID = 0xA420, // Unique image ID
|
|
TagExifCameraOwnerName = 0xA430, // Camera Owner Name
|
|
TagExifBodySerialNumber = 0xA431, // Body Serial Number
|
|
TagExifLensSpecification = 0xA432, // Lens Specification
|
|
TagExifLensMake = 0xA433, // Lens Make
|
|
TagExifLensModel = 0xA434, // Lens Model
|
|
TagExifLensSerialNumber = 0xA435, // Lens Serial Number
|
|
};
|
|
|
|
// GPS Attribute Information
|
|
enum {
|
|
TagGPSVersionID = 0x00, // GPS tag version
|
|
TagGPSLatitudeRef = 0x01, // North or South Latitude
|
|
TagGPSLatitude = 0x02, // Latitude
|
|
TagGPSLongitudeRef = 0x03, // East or West Longitude
|
|
TagGPSLongitude = 0x04, // Longitude
|
|
TagGPSAltitudeRef = 0x05, // Altitude reference
|
|
TagGPSAltitude = 0x06, // Altitude
|
|
TagGPSTimeStamp = 0x07, // GPS time (atomic clock)
|
|
TagGPSSatellites = 0x08, // GPS satellites used for measurement
|
|
TagGPSStatus = 0x09, // GPS receiver status
|
|
TagGPSMeasureMode = 0x0A, // GPS measurement mode
|
|
TagGPSDOP = 0x0B, // Measurement precision
|
|
TagGPSSpeedRef = 0x0C, // Speed unit
|
|
TagGPSSpeed = 0x0D, // Speed of GPS receiver
|
|
TagGPSTrackRef = 0x0E, // Reference for direction of movement
|
|
TagGPSTrack = 0x0F, // Direction of movement
|
|
TagGPSImgDirectionRef = 0x10, // Reference for direction of image
|
|
TagGPSImgDirection = 0x11, // Direction of image
|
|
TagGPSMapDatum = 0x12, // Geodetic survey data used
|
|
TagGPSDestLatitudeRef = 0x13, // Reference for latitude of destination
|
|
TagGPSDestLatitude = 0x14, // Latitude of destination
|
|
TagGPSDestLongitudeRef = 0x15, // Reference for longitude of destination
|
|
TagGPSDestLongitude = 0x16, // Longitude of destination
|
|
TagGPSDestBearingRef = 0x17, // Reference for bearing of destination
|
|
TagGPSDestBearing = 0x18, // Bearing of destination
|
|
TagGPSDestDistanceRef = 0x19, // Reference for distance to destination
|
|
TagGPSDestDistance = 0x1A, // Distance to destination
|
|
TagGPSProcessingMethod = 0x1B, // Name of GPS processing method
|
|
TagGPSAreaInformation = 0x1C, // Name of GPS area
|
|
TagGPSDateStamp = 0x1D, // GPS date
|
|
TagGPSDifferential = 0x1E, // GPS differential correction
|
|
TagGPSHPositioningError = 0x1F, // Horizontal positioning error
|
|
};
|
|
|
|
// TIFF type fields values
|
|
enum {
|
|
TiffTypeByte = 1,
|
|
TiffTypeAscii = 2,
|
|
TiffTypeShort = 3,
|
|
TiffTypeLong = 4,
|
|
TiffTypeRational = 5,
|
|
TiffTypeUndef = 7,
|
|
TiffTypeSLong = 9,
|
|
TiffTypeSRational = 10,
|
|
};
|
|
|
|
#endif // __EXIF_DEFINES_H__
|