Codec.Picture.Metadata.Exif

JuicyPixels-3.3.8: 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
  - | TagLightSource
  - | TagFlash
  - | 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
- isInIFD0 :: ExifTag -> Bool

# 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 |
TagLightSource | Short
TagFlash | Short
TagJpegProc |
TagJPEGInterchangeFormat |
TagJPEGInterchangeFormatLength |
TagJPEGRestartInterval |
TagJPEGLosslessPredictors |
TagJPEGPointTransforms |
TagJPEGQTables |
TagJPEGDCTables |
TagJPEGACTables |
TagExifOffset |
TagUnknown !Word16 |

#### Instances

Instances details

Show ExifTag # |
Instance details Defined in Codec.Picture.Metadata.Exif Methods showsPrec :: Int -> ExifTag -> ShowS # show :: ExifTag -> String # showList :: [ExifTag] -> ShowS #
NFData ExifTag # |
Instance details Defined in Codec.Picture.Metadata.Exif Methods rnf :: ExifTag -> () #
Eq ExifTag # |
Instance details Defined in Codec.Picture.Metadata.Exif Methods (==) :: ExifTag -> ExifTag -> Bool # (/=) :: ExifTag -> ExifTag -> Bool #
Ord ExifTag # |
Instance details Defined in Codec.Picture.Metadata.Exif 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 #
BinaryParam Endianness ExifTag # |
Instance details Defined in Codec.Picture.Tiff.Internal.Types Methods getP :: Endianness -> Get ExifTag # putP :: Endianness -> ExifTag -> Put #

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

Instances details

Show ExifData # |
Instance details Defined in Codec.Picture.Metadata.Exif Methods showsPrec :: Int -> ExifData -> ShowS # show :: ExifData -> String # showList :: [ExifData] -> ShowS #
NFData ExifData # |
Instance details Defined in Codec.Picture.Metadata.Exif Methods rnf :: ExifData -> () #
BinaryParam (Endianness, Int, ImageFileDirectory) ExifData # |
Instance details Defined in Codec.Picture.Tiff.Internal.Types Methods getP :: (Endianness, Int, ImageFileDirectory) -> Get ExifData # putP :: (Endianness, Int, ImageFileDirectory) -> ExifData -> Put #

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.

isInIFD0 :: ExifTag -> Bool #