module Graphics.Hexif.DataExif where
import Data.Binary
data Exif = Exif DataBlock Encoding
data ExifField = ExifField ExifTag String
deriving (Eq)
instance Show ExifField where
show (ExifField exifTag value) = drop 3 (show exifTag) ++ " -> " ++ value
type DataBlock = [DataEntry]
data DataEntry = DataRat ExifTag Format [(Int, Int)]
| DataNum ExifTag Format Int
| DataStr ExifTag Format String
| DataUdf ExifTag Format Int String
| DataSub DirTag DataBlock
deriving (Eq, Show)
data Encoding = Intel
| Motorola
data DirTag = IFDMain
| IFDExif
| IFDGPS
| IFDInterop
deriving (Eq, Show)
data Format = Fmt00
| Fmt01
| Fmt02
| Fmt03
| Fmt04
| Fmt05
| Fmt06
| Fmt07
| Fmt08
| Fmt09
| Fmt10
deriving (Eq, Show)
data ExifTag = TagInteroperabilityIndex
| TagInteroperabilityVersion
| TagImageWidth
| TagImageLength
| TagBitsPerSample
| TagCompression
| TagPhotometricInterpretation
| TagImageDescription
| TagModel
| TagMake
| TagOrientation
| TagSamplesPerPixel
| TagTagUnknown Word16
| TagXResolution
| TagYResolution
| TagResolutionUnit
| TagSoftware
| TagDateTime
| TagArtist
| TagHostComputer
| TagWhitePoint
| TagPrimaryChromaticities
| TagJPEGInterchangeFormat
| TagJPEGInterchangeFormatLength
| TagYCbCrCoefficients
| TagYCbCrPositioning
| TagReferenceBlackWhite
| TagRelatedImageWidth
| TagRelatedImageLength
| TagCopyright
| TagExposureTime
| TagFNumber
| TagExposureProgram
| TagISOSpeedRatings
| TagSensitivityType
| TagExifVersion
| TagDateTimeOriginal
| TagDateTimeDigitized
| TagComponentsConfiguration
| TagCompressedBitsPerPixel
| TagShutterSpeedValue
| TagApertureValue
| TagBrightnessValue
| TagExposureBiasValue
| TagMaxApertureValue
| TagSubjectDistance
| TagMeteringMode
| TagLightSource
| TagFlash
| TagFocalLength
| TagMakerNote
| TagUserComment
| TagSubsecTime
| TagSubSecTimeOriginal
| TagSubSecTimeDigitized
| TagXPTitle
| TagXPAuthor
| TagFlashPixVersion
| TagColorSpace
| TagPixelXDimension
| TagPixelYDimension
| TagFocalPlaneXResolution
| TagFocalPlaneYResolution
| TagFocalPlaneResolutionUnit
| TagSensingMethod
| TagFileSource
| TagSceneType
| TagCFAPattern
| TagCustomRendered
| TagExposureMode
| TagWhiteBalance
| TagDigitalZoomRatio
| TagFocalLengthIn35mmFilm
| TagSceneCaptureType
| TagGainControl
| TagContrast
| TagSaturation
| TagSharpness
| TagSubjectDistanceRange
| TagImageUniqueID
| TagGamma
| TagPrintImageMatching
| TagPanasonicTitle1
| TagPanasonicTitle2
| TagPadding
| TagOffsetSchemata
| TagGPSVersionID
| TagGPSLatitudeRef
| TagGPSLatitude
| TagGPSLongitudeRef
| TagGPSLongitude
| TagGPSAltitudeRef
| TagGPSAltitude
| TagGPSTimeStamp
| TagGPSImgDirectionRef
| TagGPSImgDirection
| TagGPSMapDatum
| TagGPSDestLatitudeRef
| TagGPSDestLatitude
| TagGPSDestLongitudeRef
| TagGPSDestLongitude
| TagGPSDateStamp
| TagSubDirIFDMain
| TagSubDirIFDExif
| TagSubDirIFDGPS
| TagSubDirIFDInterop
deriving (Eq, Show)