Codec.Picture.Metadata.Exif

JuicyPixels-3.2.8.1: Picture loading/serialization (in png, jpeg, bitmap, gif, tga, tiff and radiance)

Safe Haskell | None
Language | Haskell2010

Codec.Picture.Metadata.Exif

Description

This module provide a totally partial and incomplete maping of Exif values. Used for Tiff parsing and reused for Exif extraction.

Synopsis

- data ExifTag
  - = TagPhotometricInterpretation
  - | TagCompression
  - | TagImageWidth
  - | TagImageLength
  - | TagXResolution
  - | TagYResolution
  - | TagResolutionUnit
  - | TagRowPerStrip
  - | TagStripByteCounts
  - | TagStripOffsets
  - | TagBitsPerSample
  - | TagColorMap
  - | TagTileWidth
  - | TagTileLength
  - | TagTileOffset
  - | TagTileByteCount
  - | TagSamplesPerPixel
  - | TagArtist
  - | TagDocumentName
  - | TagSoftware
  - | TagPlanarConfiguration
  - | TagOrientation
  - | TagSampleFormat
  - | TagInkSet
  - | TagSubfileType
  - | TagFillOrder
  - | TagYCbCrCoeff
  - | TagYCbCrSubsampling
  - | TagYCbCrPositioning
  - | TagReferenceBlackWhite
  - | TagXPosition
  - | TagYPosition
  - | TagExtraSample
  - | TagImageDescription
  - | TagPredictor
  - | TagCopyright
  - | TagMake
  - | TagModel
  - | TagDateTime
  - | TagGPSInfo
  - | TagJpegProc
  - | TagJPEGInterchangeFormat
  - | TagJPEGInterchangeFormatLength
  - | TagJPEGRestartInterval
  - | TagJPEGLosslessPredictors
  - | TagJPEGPointTransforms
  - | TagJPEGQTables
  - | TagJPEGDCTables
  - | TagJPEGACTables
  - | TagExifOffset
  - | TagUnknown !Word16
- data ExifData
  - = ExifNone
  - | ExifLong !Word32
  - | ExifShort !Word16
  - | ExifString !ByteString
  - | ExifUndefined !ByteString
  - | ExifShorts !(Vector Word16)
  - | ExifLongs !(Vector Word32)
  - | ExifRational !Word32 !Word32
  - | ExifSignedRational !Int32 !Int32
  - | ExifIFD ![(ExifTag, ExifData)]
- tagOfWord16 :: Word16 -> ExifTag
- word16OfTag :: ExifTag -> Word16

# Documentation

data ExifTag #

Tag values used for exif fields. Completly incomplete

Constructors

TagPhotometricInterpretation |
TagCompression | Short type
TagImageWidth | Short or long type
TagImageLength | Short or long type
TagXResolution | Rational type
TagYResolution | Rational type
TagResolutionUnit |
TagRowPerStrip | Short or long type
TagStripByteCounts | Short or long
TagStripOffsets | Short or long
TagBitsPerSample |
TagColorMap | Short
TagTileWidth |
TagTileLength |
TagTileOffset |
TagTileByteCount |
TagSamplesPerPixel | Short
TagArtist |
TagDocumentName |
TagSoftware |
TagPlanarConfiguration | Short
TagOrientation |
TagSampleFormat | Short
TagInkSet |
TagSubfileType |
TagFillOrder |
TagYCbCrCoeff |
TagYCbCrSubsampling |
TagYCbCrPositioning |
TagReferenceBlackWhite |
TagXPosition |
TagYPosition |
TagExtraSample |
TagImageDescription |
TagPredictor |
TagCopyright |
TagMake |
TagModel |
TagDateTime |
TagGPSInfo |
TagJpegProc |
TagJPEGInterchangeFormat |
TagJPEGInterchangeFormatLength |
TagJPEGRestartInterval |
TagJPEGLosslessPredictors |
TagJPEGPointTransforms |
TagJPEGQTables |
TagJPEGDCTables |
TagJPEGACTables |
TagExifOffset |
TagUnknown !Word16 |

Instances

Eq ExifTag # |
Methods (==) :: ExifTag -> ExifTag -> Bool # (/=) :: ExifTag -> ExifTag -> Bool #
Ord ExifTag # |
Methods compare :: ExifTag -> ExifTag -> Ordering # (<) :: ExifTag -> ExifTag -> Bool # (<=) :: ExifTag -> ExifTag -> Bool # (>) :: ExifTag -> ExifTag -> Bool # (>=) :: ExifTag -> ExifTag -> Bool # max :: ExifTag -> ExifTag -> ExifTag # min :: ExifTag -> ExifTag -> ExifTag #
Show ExifTag # |
Methods showsPrec :: Int -> ExifTag -> ShowS # show :: ExifTag -> String # showList :: [ExifTag] -> ShowS #
NFData ExifTag # |
Methods rnf :: ExifTag -> () #

data ExifData #

Possible data held by an Exif tag

Constructors

ExifNone |
ExifLong !Word32 |
ExifShort !Word16 |
ExifString !ByteString |
ExifUndefined !ByteString |
ExifShorts !(Vector Word16) |
ExifLongs !(Vector Word32) |
ExifRational !Word32 !Word32 |
ExifSignedRational !Int32 !Int32 |
ExifIFD ![(ExifTag, ExifData)] |

Instances

Show ExifData # |
Methods showsPrec :: Int -> ExifData -> ShowS # show :: ExifData -> String # showList :: [ExifData] -> ShowS #
NFData ExifData # |
Methods rnf :: ExifData -> () #

tagOfWord16 :: Word16 -> ExifTag #

Convert a value to it's corresponding Exif tag. Will often be written as `TagUnknown`

word16OfTag :: ExifTag -> Word16 #

Convert a tag to it's corresponding value.