JuicyPixels-3.3.9: Picture loading/serialization (in png, jpeg, bitmap, gif, tga, tiff and radiance)
Safe HaskellSafe-Inferred
LanguageHaskell2010

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

Documentation

data ExifTag Source #

Tag values used for exif fields. Completly incomplete

Instances

Instances details
Generic ExifTag Source # 
Instance details

Defined in Codec.Picture.Metadata.Exif

Associated Types

type Rep ExifTag :: Type -> Type #

Methods

from :: ExifTag -> Rep ExifTag x #

to :: Rep ExifTag x -> ExifTag #

Show ExifTag Source # 
Instance details

Defined in Codec.Picture.Metadata.Exif

NFData ExifTag Source # 
Instance details

Defined in Codec.Picture.Metadata.Exif

Methods

rnf :: ExifTag -> () #

Eq ExifTag Source # 
Instance details

Defined in Codec.Picture.Metadata.Exif

Methods

(==) :: ExifTag -> ExifTag -> Bool #

(/=) :: ExifTag -> ExifTag -> Bool #

Ord ExifTag Source # 
Instance details

Defined in Codec.Picture.Metadata.Exif

BinaryParam Endianness ExifTag Source # 
Instance details

Defined in Codec.Picture.Tiff.Internal.Types

type Rep ExifTag Source # 
Instance details

Defined in Codec.Picture.Metadata.Exif

type Rep ExifTag = D1 ('MetaData "ExifTag" "Codec.Picture.Metadata.Exif" "JuicyPixels-3.3.9-8TrKyMTj3IQ4xY3eA8GFM4" 'False) (((((C1 ('MetaCons "TagPhotometricInterpretation" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "TagCompression" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "TagImageWidth" 'PrefixI 'False) (U1 :: Type -> Type))) :+: (C1 ('MetaCons "TagImageLength" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "TagXResolution" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "TagYResolution" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "TagResolutionUnit" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "TagRowPerStrip" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "TagStripByteCounts" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "TagStripOffsets" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "TagBitsPerSample" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "TagColorMap" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "TagTileWidth" 'PrefixI 'False) (U1 :: Type -> Type))))) :+: (((C1 ('MetaCons "TagTileLength" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "TagTileOffset" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "TagTileByteCount" 'PrefixI 'False) (U1 :: Type -> Type))) :+: (C1 ('MetaCons "TagSamplesPerPixel" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "TagArtist" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "TagDocumentName" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "TagSoftware" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "TagPlanarConfiguration" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "TagOrientation" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "TagSampleFormat" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "TagInkSet" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "TagSubfileType" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "TagFillOrder" 'PrefixI 'False) (U1 :: Type -> Type)))))) :+: ((((C1 ('MetaCons "TagYCbCrCoeff" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "TagYCbCrSubsampling" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "TagYCbCrPositioning" 'PrefixI 'False) (U1 :: Type -> Type))) :+: (C1 ('MetaCons "TagReferenceBlackWhite" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "TagXPosition" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "TagYPosition" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "TagExtraSample" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "TagImageDescription" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "TagPredictor" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "TagCopyright" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "TagMake" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "TagModel" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "TagDateTime" 'PrefixI 'False) (U1 :: Type -> Type))))) :+: (((C1 ('MetaCons "TagGPSInfo" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "TagLightSource" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "TagFlash" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "TagJpegProc" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "TagJPEGInterchangeFormat" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "TagJPEGInterchangeFormatLength" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "TagJPEGRestartInterval" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "TagJPEGLosslessPredictors" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "TagJPEGPointTransforms" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "TagJPEGQTables" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "TagJPEGDCTables" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "TagJPEGACTables" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "TagExifOffset" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "TagUnknown" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Word16))))))))

data ExifData Source #

Possible data held by an Exif tag

Instances

Instances details
Generic ExifData Source # 
Instance details

Defined in Codec.Picture.Metadata.Exif

Associated Types

type Rep ExifData :: Type -> Type #

Methods

from :: ExifData -> Rep ExifData x #

to :: Rep ExifData x -> ExifData #

Show ExifData Source # 
Instance details

Defined in Codec.Picture.Metadata.Exif

NFData ExifData Source # 
Instance details

Defined in Codec.Picture.Metadata.Exif

Methods

rnf :: ExifData -> () #

Eq ExifData Source # 
Instance details

Defined in Codec.Picture.Metadata.Exif

BinaryParam (Endianness, Int, ImageFileDirectory) ExifData Source # 
Instance details

Defined in Codec.Picture.Tiff.Internal.Types

type Rep ExifData Source # 
Instance details

Defined in Codec.Picture.Metadata.Exif

type Rep ExifData = D1 ('MetaData "ExifData" "Codec.Picture.Metadata.Exif" "JuicyPixels-3.3.9-8TrKyMTj3IQ4xY3eA8GFM4" 'False) (((C1 ('MetaCons "ExifNone" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ExifLong" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Word32))) :+: (C1 ('MetaCons "ExifShort" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Word16)) :+: (C1 ('MetaCons "ExifString" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 ByteString)) :+: C1 ('MetaCons "ExifUndefined" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 ByteString))))) :+: ((C1 ('MetaCons "ExifShorts" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Vector Word16))) :+: C1 ('MetaCons "ExifLongs" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Vector Word32)))) :+: (C1 ('MetaCons "ExifRational" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Word32) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Word32)) :+: (C1 ('MetaCons "ExifSignedRational" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Int32) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Int32)) :+: C1 ('MetaCons "ExifIFD" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [(ExifTag, ExifData)]))))))

tagOfWord16 :: Word16 -> ExifTag Source #

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

word16OfTag :: ExifTag -> Word16 Source #

Convert a tag to it's corresponding value.