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

Codec.Picture.Jpg.Internal.Types

Description

A good explanation of the JPEG format, including diagrams, is given at: https://github.com/corkami/formats/blob/master/image/jpeg.md

The full spec (excluding EXIF): https://www.w3.org/Graphics/JPEG/itu-t81.pdf

Synopsis

Documentation

type MutableMacroBlock s a = STVector s a #

Macroblock that can be transformed.

createEmptyMutableMacroBlock :: (Storable a, Num a) => ST s (MutableMacroBlock s a) #

Create a new macroblock with the good array size

type DcCoefficient = Int16 #

Type only used to make clear what kind of integer we are carrying Might be transformed into newtype in the future

data JpgImage #

Constructors

JpgImage 

Fields

Instances

Instances details
Binary JpgImage # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

Methods

put :: JpgImage -> Put #

get :: Get JpgImage #

putList :: [JpgImage] -> Put #

NFData JpgImage # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

Methods

rnf :: JpgImage -> () #

Generic JpgImage # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

Associated Types

type Rep JpgImage 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

type Rep JpgImage = D1 ('MetaData "JpgImage" "Codec.Picture.Jpg.Internal.Types" "JuicyPixels-3.3.9-D4GSBtW9OfK2GKVIljLKj0" 'False) (C1 ('MetaCons "JpgImage" 'PrefixI 'True) (S1 ('MetaSel ('Just "jpgFrame") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [JpgFrame])))

Methods

from :: JpgImage -> Rep JpgImage x #

to :: Rep JpgImage x -> JpgImage #

Show JpgImage # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

Eq JpgImage # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

type Rep JpgImage # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

type Rep JpgImage = D1 ('MetaData "JpgImage" "Codec.Picture.Jpg.Internal.Types" "JuicyPixels-3.3.9-D4GSBtW9OfK2GKVIljLKj0" 'False) (C1 ('MetaCons "JpgImage" 'PrefixI 'True) (S1 ('MetaSel ('Just "jpgFrame") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [JpgFrame])))

data JpgComponent #

Constructors

JpgComponent 

Instances

Instances details
Binary JpgComponent # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

NFData JpgComponent # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

Methods

rnf :: JpgComponent -> () #

Generic JpgComponent # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

Associated Types

type Rep JpgComponent 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

type Rep JpgComponent = D1 ('MetaData "JpgComponent" "Codec.Picture.Jpg.Internal.Types" "JuicyPixels-3.3.9-D4GSBtW9OfK2GKVIljLKj0" 'False) (C1 ('MetaCons "JpgComponent" 'PrefixI 'True) ((S1 ('MetaSel ('Just "componentIdentifier") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Word8) :*: S1 ('MetaSel ('Just "horizontalSamplingFactor") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Word8)) :*: (S1 ('MetaSel ('Just "verticalSamplingFactor") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Word8) :*: S1 ('MetaSel ('Just "quantizationTableDest") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Word8))))
Show JpgComponent # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

Eq JpgComponent # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

type Rep JpgComponent # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

type Rep JpgComponent = D1 ('MetaData "JpgComponent" "Codec.Picture.Jpg.Internal.Types" "JuicyPixels-3.3.9-D4GSBtW9OfK2GKVIljLKj0" 'False) (C1 ('MetaCons "JpgComponent" 'PrefixI 'True) ((S1 ('MetaSel ('Just "componentIdentifier") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Word8) :*: S1 ('MetaSel ('Just "horizontalSamplingFactor") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Word8)) :*: (S1 ('MetaSel ('Just "verticalSamplingFactor") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Word8) :*: S1 ('MetaSel ('Just "quantizationTableDest") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Word8))))

data JpgFrameHeader #

Instances

Instances details
Binary JpgFrameHeader # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

NFData JpgFrameHeader # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

Methods

rnf :: JpgFrameHeader -> () #

Generic JpgFrameHeader # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

Associated Types

type Rep JpgFrameHeader 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

type Rep JpgFrameHeader = D1 ('MetaData "JpgFrameHeader" "Codec.Picture.Jpg.Internal.Types" "JuicyPixels-3.3.9-D4GSBtW9OfK2GKVIljLKj0" 'False) (C1 ('MetaCons "JpgFrameHeader" 'PrefixI 'True) ((S1 ('MetaSel ('Just "jpgFrameHeaderLength") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Word16) :*: (S1 ('MetaSel ('Just "jpgSamplePrecision") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Word8) :*: S1 ('MetaSel ('Just "jpgHeight") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Word16))) :*: (S1 ('MetaSel ('Just "jpgWidth") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Word16) :*: (S1 ('MetaSel ('Just "jpgImageComponentCount") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Word8) :*: S1 ('MetaSel ('Just "jpgComponents") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [JpgComponent])))))
Show JpgFrameHeader # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

Eq JpgFrameHeader # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

type Rep JpgFrameHeader # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

type Rep JpgFrameHeader = D1 ('MetaData "JpgFrameHeader" "Codec.Picture.Jpg.Internal.Types" "JuicyPixels-3.3.9-D4GSBtW9OfK2GKVIljLKj0" 'False) (C1 ('MetaCons "JpgFrameHeader" 'PrefixI 'True) ((S1 ('MetaSel ('Just "jpgFrameHeaderLength") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Word16) :*: (S1 ('MetaSel ('Just "jpgSamplePrecision") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Word8) :*: S1 ('MetaSel ('Just "jpgHeight") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Word16))) :*: (S1 ('MetaSel ('Just "jpgWidth") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Word16) :*: (S1 ('MetaSel ('Just "jpgImageComponentCount") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Word8) :*: S1 ('MetaSel ('Just "jpgComponents") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [JpgComponent])))))

data JpgFrame #

Instances

Instances details
NFData JpgFrame # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

Methods

rnf :: JpgFrame -> () #

Generic JpgFrame # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

Associated Types

type Rep JpgFrame 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

type Rep JpgFrame = D1 ('MetaData "JpgFrame" "Codec.Picture.Jpg.Internal.Types" "JuicyPixels-3.3.9-D4GSBtW9OfK2GKVIljLKj0" 'False) (((C1 ('MetaCons "JpgAppFrame" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Word8) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ByteString)) :+: C1 ('MetaCons "JpgAdobeAPP14" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 JpgAdobeApp14))) :+: (C1 ('MetaCons "JpgJFIF" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 JpgJFIFApp0)) :+: (C1 ('MetaCons "JpgExif" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [ImageFileDirectory])) :+: C1 ('MetaCons "JpgExtension" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Word8) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ByteString))))) :+: ((C1 ('MetaCons "JpgQuantTable" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [JpgQuantTableSpec])) :+: C1 ('MetaCons "JpgHuffmanTable" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [(JpgHuffmanTableSpec, HuffmanPackedTree)]))) :+: (C1 ('MetaCons "JpgScanBlob" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 JpgScanHeader) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 ByteString)) :+: (C1 ('MetaCons "JpgScans" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 JpgFrameKind) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 JpgFrameHeader)) :+: C1 ('MetaCons "JpgIntervalRestart" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Word16))))))

Methods

from :: JpgFrame -> Rep JpgFrame x #

to :: Rep JpgFrame x -> JpgFrame #

Show JpgFrame # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

Eq JpgFrame # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

type Rep JpgFrame # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

type Rep JpgFrame = D1 ('MetaData "JpgFrame" "Codec.Picture.Jpg.Internal.Types" "JuicyPixels-3.3.9-D4GSBtW9OfK2GKVIljLKj0" 'False) (((C1 ('MetaCons "JpgAppFrame" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Word8) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ByteString)) :+: C1 ('MetaCons "JpgAdobeAPP14" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 JpgAdobeApp14))) :+: (C1 ('MetaCons "JpgJFIF" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 JpgJFIFApp0)) :+: (C1 ('MetaCons "JpgExif" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [ImageFileDirectory])) :+: C1 ('MetaCons "JpgExtension" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Word8) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ByteString))))) :+: ((C1 ('MetaCons "JpgQuantTable" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [JpgQuantTableSpec])) :+: C1 ('MetaCons "JpgHuffmanTable" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [(JpgHuffmanTableSpec, HuffmanPackedTree)]))) :+: (C1 ('MetaCons "JpgScanBlob" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 JpgScanHeader) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 ByteString)) :+: (C1 ('MetaCons "JpgScans" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 JpgFrameKind) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 JpgFrameHeader)) :+: C1 ('MetaCons "JpgIntervalRestart" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Word16))))))

data JpgFrameKind #

Instances

Instances details
Binary JpgFrameKind # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

NFData JpgFrameKind # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

Methods

rnf :: JpgFrameKind -> () #

Generic JpgFrameKind # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

Associated Types

type Rep JpgFrameKind 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

type Rep JpgFrameKind = D1 ('MetaData "JpgFrameKind" "Codec.Picture.Jpg.Internal.Types" "JuicyPixels-3.3.9-D4GSBtW9OfK2GKVIljLKj0" 'False) ((((C1 ('MetaCons "JpgBaselineDCTHuffman" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "JpgExtendedSequentialDCTHuffman" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "JpgProgressiveDCTHuffman" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "JpgLosslessHuffman" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "JpgDifferentialSequentialDCTHuffman" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "JpgDifferentialProgressiveDCTHuffman" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "JpgDifferentialLosslessHuffman" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "JpgExtendedSequentialArithmetic" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "JpgProgressiveDCTArithmetic" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "JpgLosslessArithmetic" 'PrefixI 'False) (U1 :: Type -> Type))))) :+: (((C1 ('MetaCons "JpgDifferentialSequentialDCTArithmetic" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "JpgDifferentialProgressiveDCTArithmetic" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "JpgDifferentialLosslessArithmetic" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "JpgQuantizationTable" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "JpgHuffmanTableMarker" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "JpgStartOfScan" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "JpgEndOfImage" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "JpgAppSegment" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word8)))) :+: (C1 ('MetaCons "JpgExtensionSegment" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word8)) :+: (C1 ('MetaCons "JpgRestartInterval" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "JpgRestartIntervalEnd" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word8)))))))
Show JpgFrameKind # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

Eq JpgFrameKind # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

type Rep JpgFrameKind # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

type Rep JpgFrameKind = D1 ('MetaData "JpgFrameKind" "Codec.Picture.Jpg.Internal.Types" "JuicyPixels-3.3.9-D4GSBtW9OfK2GKVIljLKj0" 'False) ((((C1 ('MetaCons "JpgBaselineDCTHuffman" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "JpgExtendedSequentialDCTHuffman" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "JpgProgressiveDCTHuffman" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "JpgLosslessHuffman" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "JpgDifferentialSequentialDCTHuffman" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "JpgDifferentialProgressiveDCTHuffman" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "JpgDifferentialLosslessHuffman" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "JpgExtendedSequentialArithmetic" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "JpgProgressiveDCTArithmetic" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "JpgLosslessArithmetic" 'PrefixI 'False) (U1 :: Type -> Type))))) :+: (((C1 ('MetaCons "JpgDifferentialSequentialDCTArithmetic" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "JpgDifferentialProgressiveDCTArithmetic" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "JpgDifferentialLosslessArithmetic" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "JpgQuantizationTable" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "JpgHuffmanTableMarker" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "JpgStartOfScan" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "JpgEndOfImage" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "JpgAppSegment" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word8)))) :+: (C1 ('MetaCons "JpgExtensionSegment" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word8)) :+: (C1 ('MetaCons "JpgRestartInterval" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "JpgRestartIntervalEnd" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word8)))))))

data JpgScanHeader #

Constructors

JpgScanHeader 

Instances

Instances details
Binary JpgScanHeader # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

NFData JpgScanHeader # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

Methods

rnf :: JpgScanHeader -> () #

Generic JpgScanHeader # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

Associated Types

type Rep JpgScanHeader 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

type Rep JpgScanHeader = D1 ('MetaData "JpgScanHeader" "Codec.Picture.Jpg.Internal.Types" "JuicyPixels-3.3.9-D4GSBtW9OfK2GKVIljLKj0" 'False) (C1 ('MetaCons "JpgScanHeader" 'PrefixI 'True) ((S1 ('MetaSel ('Just "scanLength") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Word16) :*: (S1 ('MetaSel ('Just "scanComponentCount") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Word8) :*: S1 ('MetaSel ('Just "scans") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [JpgScanSpecification]))) :*: (S1 ('MetaSel ('Just "spectralSelection") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Word8, Word8)) :*: (S1 ('MetaSel ('Just "successiveApproxHigh") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Word8) :*: S1 ('MetaSel ('Just "successiveApproxLow") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Word8)))))
Show JpgScanHeader # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

Eq JpgScanHeader # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

type Rep JpgScanHeader # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

type Rep JpgScanHeader = D1 ('MetaData "JpgScanHeader" "Codec.Picture.Jpg.Internal.Types" "JuicyPixels-3.3.9-D4GSBtW9OfK2GKVIljLKj0" 'False) (C1 ('MetaCons "JpgScanHeader" 'PrefixI 'True) ((S1 ('MetaSel ('Just "scanLength") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Word16) :*: (S1 ('MetaSel ('Just "scanComponentCount") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Word8) :*: S1 ('MetaSel ('Just "scans") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [JpgScanSpecification]))) :*: (S1 ('MetaSel ('Just "spectralSelection") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Word8, Word8)) :*: (S1 ('MetaSel ('Just "successiveApproxHigh") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Word8) :*: S1 ('MetaSel ('Just "successiveApproxLow") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Word8)))))

data JpgQuantTableSpec #

Constructors

JpgQuantTableSpec 

Fields

Instances

Instances details
Binary JpgQuantTableSpec # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

NFData JpgQuantTableSpec # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

Methods

rnf :: JpgQuantTableSpec -> () #

Generic JpgQuantTableSpec # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

Associated Types

type Rep JpgQuantTableSpec 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

type Rep JpgQuantTableSpec = D1 ('MetaData "JpgQuantTableSpec" "Codec.Picture.Jpg.Internal.Types" "JuicyPixels-3.3.9-D4GSBtW9OfK2GKVIljLKj0" 'False) (C1 ('MetaCons "JpgQuantTableSpec" 'PrefixI 'True) (S1 ('MetaSel ('Just "quantPrecision") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Word8) :*: (S1 ('MetaSel ('Just "quantDestination") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Word8) :*: S1 ('MetaSel ('Just "quantTable") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (MacroBlock Int16)))))
Show JpgQuantTableSpec # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

Eq JpgQuantTableSpec # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

type Rep JpgQuantTableSpec # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

type Rep JpgQuantTableSpec = D1 ('MetaData "JpgQuantTableSpec" "Codec.Picture.Jpg.Internal.Types" "JuicyPixels-3.3.9-D4GSBtW9OfK2GKVIljLKj0" 'False) (C1 ('MetaCons "JpgQuantTableSpec" 'PrefixI 'True) (S1 ('MetaSel ('Just "quantPrecision") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Word8) :*: (S1 ('MetaSel ('Just "quantDestination") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Word8) :*: S1 ('MetaSel ('Just "quantTable") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (MacroBlock Int16)))))

data JpgHuffmanTableSpec #

Constructors

JpgHuffmanTableSpec 

Fields

Instances

Instances details
Binary JpgHuffmanTableSpec # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

NFData JpgHuffmanTableSpec # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

Methods

rnf :: JpgHuffmanTableSpec -> () #

Generic JpgHuffmanTableSpec # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

Associated Types

type Rep JpgHuffmanTableSpec 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

type Rep JpgHuffmanTableSpec = D1 ('MetaData "JpgHuffmanTableSpec" "Codec.Picture.Jpg.Internal.Types" "JuicyPixels-3.3.9-D4GSBtW9OfK2GKVIljLKj0" 'False) (C1 ('MetaCons "JpgHuffmanTableSpec" 'PrefixI 'True) ((S1 ('MetaSel ('Just "huffmanTableClass") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 DctComponent) :*: S1 ('MetaSel ('Just "huffmanTableDest") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Word8)) :*: (S1 ('MetaSel ('Just "huffSizes") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Vector Word8)) :*: S1 ('MetaSel ('Just "huffCodes") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Vector (Vector Word8))))))
Show JpgHuffmanTableSpec # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

Eq JpgHuffmanTableSpec # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

type Rep JpgHuffmanTableSpec # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

type Rep JpgHuffmanTableSpec = D1 ('MetaData "JpgHuffmanTableSpec" "Codec.Picture.Jpg.Internal.Types" "JuicyPixels-3.3.9-D4GSBtW9OfK2GKVIljLKj0" 'False) (C1 ('MetaCons "JpgHuffmanTableSpec" 'PrefixI 'True) ((S1 ('MetaSel ('Just "huffmanTableClass") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 DctComponent) :*: S1 ('MetaSel ('Just "huffmanTableDest") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Word8)) :*: (S1 ('MetaSel ('Just "huffSizes") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Vector Word8)) :*: S1 ('MetaSel ('Just "huffCodes") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Vector (Vector Word8))))))

data JpgScanSpecification #

Constructors

JpgScanSpecification 

Fields

Instances

Instances details
Binary JpgScanSpecification # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

NFData JpgScanSpecification # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

Methods

rnf :: JpgScanSpecification -> () #

Generic JpgScanSpecification # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

Associated Types

type Rep JpgScanSpecification 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

type Rep JpgScanSpecification = D1 ('MetaData "JpgScanSpecification" "Codec.Picture.Jpg.Internal.Types" "JuicyPixels-3.3.9-D4GSBtW9OfK2GKVIljLKj0" 'False) (C1 ('MetaCons "JpgScanSpecification" 'PrefixI 'True) (S1 ('MetaSel ('Just "componentSelector") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Word8) :*: (S1 ('MetaSel ('Just "dcEntropyCodingTable") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Word8) :*: S1 ('MetaSel ('Just "acEntropyCodingTable") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Word8))))
Show JpgScanSpecification # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

Eq JpgScanSpecification # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

type Rep JpgScanSpecification # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

type Rep JpgScanSpecification = D1 ('MetaData "JpgScanSpecification" "Codec.Picture.Jpg.Internal.Types" "JuicyPixels-3.3.9-D4GSBtW9OfK2GKVIljLKj0" 'False) (C1 ('MetaCons "JpgScanSpecification" 'PrefixI 'True) (S1 ('MetaSel ('Just "componentSelector") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Word8) :*: (S1 ('MetaSel ('Just "dcEntropyCodingTable") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Word8) :*: S1 ('MetaSel ('Just "acEntropyCodingTable") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Word8))))

data JpgColorSpace #

Instances

Instances details
NFData JpgColorSpace # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

Methods

rnf :: JpgColorSpace -> () #

Generic JpgColorSpace # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

Associated Types

type Rep JpgColorSpace 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

type Rep JpgColorSpace = D1 ('MetaData "JpgColorSpace" "Codec.Picture.Jpg.Internal.Types" "JuicyPixels-3.3.9-D4GSBtW9OfK2GKVIljLKj0" 'False) (((C1 ('MetaCons "JpgColorSpaceYCbCr" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "JpgColorSpaceYCC" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "JpgColorSpaceY" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "JpgColorSpaceYA" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "JpgColorSpaceYCCA" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "JpgColorSpaceYCCK" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "JpgColorSpaceCMYK" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "JpgColorSpaceRGB" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "JpgColorSpaceRGBA" 'PrefixI 'False) (U1 :: Type -> Type)))))
Show JpgColorSpace # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

Eq JpgColorSpace # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

type Rep JpgColorSpace # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

type Rep JpgColorSpace = D1 ('MetaData "JpgColorSpace" "Codec.Picture.Jpg.Internal.Types" "JuicyPixels-3.3.9-D4GSBtW9OfK2GKVIljLKj0" 'False) (((C1 ('MetaCons "JpgColorSpaceYCbCr" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "JpgColorSpaceYCC" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "JpgColorSpaceY" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "JpgColorSpaceYA" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "JpgColorSpaceYCCA" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "JpgColorSpaceYCCK" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "JpgColorSpaceCMYK" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "JpgColorSpaceRGB" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "JpgColorSpaceRGBA" 'PrefixI 'False) (U1 :: Type -> Type)))))

data AdobeTransform #

Constructors

AdobeUnknown

Value 0

AdobeYCbCr

value 1

AdobeYCck

value 2

Instances

Instances details
Binary AdobeTransform # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

NFData AdobeTransform # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

Methods

rnf :: AdobeTransform -> () #

Generic AdobeTransform # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

Associated Types

type Rep AdobeTransform 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

type Rep AdobeTransform = D1 ('MetaData "AdobeTransform" "Codec.Picture.Jpg.Internal.Types" "JuicyPixels-3.3.9-D4GSBtW9OfK2GKVIljLKj0" 'False) (C1 ('MetaCons "AdobeUnknown" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "AdobeYCbCr" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "AdobeYCck" 'PrefixI 'False) (U1 :: Type -> Type)))
Show AdobeTransform # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

Eq AdobeTransform # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

type Rep AdobeTransform # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

type Rep AdobeTransform = D1 ('MetaData "AdobeTransform" "Codec.Picture.Jpg.Internal.Types" "JuicyPixels-3.3.9-D4GSBtW9OfK2GKVIljLKj0" 'False) (C1 ('MetaCons "AdobeUnknown" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "AdobeYCbCr" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "AdobeYCck" 'PrefixI 'False) (U1 :: Type -> Type)))

data JpgAdobeApp14 #

Instances

Instances details
Binary JpgAdobeApp14 # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

NFData JpgAdobeApp14 # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

Methods

rnf :: JpgAdobeApp14 -> () #

Generic JpgAdobeApp14 # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

Associated Types

type Rep JpgAdobeApp14 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

type Rep JpgAdobeApp14 = D1 ('MetaData "JpgAdobeApp14" "Codec.Picture.Jpg.Internal.Types" "JuicyPixels-3.3.9-D4GSBtW9OfK2GKVIljLKj0" 'False) (C1 ('MetaCons "JpgAdobeApp14" 'PrefixI 'True) ((S1 ('MetaSel ('Just "_adobeDctVersion") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Word16) :*: S1 ('MetaSel ('Just "_adobeFlag0") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Word16)) :*: (S1 ('MetaSel ('Just "_adobeFlag1") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Word16) :*: S1 ('MetaSel ('Just "_adobeTransform") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 AdobeTransform))))
Show JpgAdobeApp14 # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

Eq JpgAdobeApp14 # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

type Rep JpgAdobeApp14 # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

type Rep JpgAdobeApp14 = D1 ('MetaData "JpgAdobeApp14" "Codec.Picture.Jpg.Internal.Types" "JuicyPixels-3.3.9-D4GSBtW9OfK2GKVIljLKj0" 'False) (C1 ('MetaCons "JpgAdobeApp14" 'PrefixI 'True) ((S1 ('MetaSel ('Just "_adobeDctVersion") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Word16) :*: S1 ('MetaSel ('Just "_adobeFlag0") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Word16)) :*: (S1 ('MetaSel ('Just "_adobeFlag1") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Word16) :*: S1 ('MetaSel ('Just "_adobeTransform") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 AdobeTransform))))

data JpgJFIFApp0 #

Instances

Instances details
Binary JpgJFIFApp0 # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

NFData JpgJFIFApp0 # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

Methods

rnf :: JpgJFIFApp0 -> () #

Generic JpgJFIFApp0 # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

Associated Types

type Rep JpgJFIFApp0 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

type Rep JpgJFIFApp0 = D1 ('MetaData "JpgJFIFApp0" "Codec.Picture.Jpg.Internal.Types" "JuicyPixels-3.3.9-D4GSBtW9OfK2GKVIljLKj0" 'False) (C1 ('MetaCons "JpgJFIFApp0" 'PrefixI 'True) ((S1 ('MetaSel ('Just "_jfifUnit") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 JFifUnit) :*: S1 ('MetaSel ('Just "_jfifDpiX") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Word16)) :*: (S1 ('MetaSel ('Just "_jfifDpiY") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Word16) :*: S1 ('MetaSel ('Just "_jfifThumbnail") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Int)))))
Show JpgJFIFApp0 # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

Eq JpgJFIFApp0 # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

type Rep JpgJFIFApp0 # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

type Rep JpgJFIFApp0 = D1 ('MetaData "JpgJFIFApp0" "Codec.Picture.Jpg.Internal.Types" "JuicyPixels-3.3.9-D4GSBtW9OfK2GKVIljLKj0" 'False) (C1 ('MetaCons "JpgJFIFApp0" 'PrefixI 'True) ((S1 ('MetaSel ('Just "_jfifUnit") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 JFifUnit) :*: S1 ('MetaSel ('Just "_jfifDpiX") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Word16)) :*: (S1 ('MetaSel ('Just "_jfifDpiY") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Word16) :*: S1 ('MetaSel ('Just "_jfifThumbnail") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Int)))))

data JFifUnit #

Size: 1

Instances

Instances details
Binary JFifUnit # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

Methods

put :: JFifUnit -> Put #

get :: Get JFifUnit #

putList :: [JFifUnit] -> Put #

NFData JFifUnit # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

Methods

rnf :: JFifUnit -> () #

Generic JFifUnit # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

Associated Types

type Rep JFifUnit 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

type Rep JFifUnit = D1 ('MetaData "JFifUnit" "Codec.Picture.Jpg.Internal.Types" "JuicyPixels-3.3.9-D4GSBtW9OfK2GKVIljLKj0" 'False) (C1 ('MetaCons "JFifUnitUnknown" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "JFifPixelsPerInch" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "JFifPixelsPerCentimeter" 'PrefixI 'False) (U1 :: Type -> Type)))

Methods

from :: JFifUnit -> Rep JFifUnit x #

to :: Rep JFifUnit x -> JFifUnit #

Show JFifUnit # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

Eq JFifUnit # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

type Rep JFifUnit # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

type Rep JFifUnit = D1 ('MetaData "JFifUnit" "Codec.Picture.Jpg.Internal.Types" "JuicyPixels-3.3.9-D4GSBtW9OfK2GKVIljLKj0" 'False) (C1 ('MetaCons "JFifUnitUnknown" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "JFifPixelsPerInch" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "JFifPixelsPerCentimeter" 'PrefixI 'False) (U1 :: Type -> Type)))

newtype TableList a #

Type introduced only to avoid some typeclass overlapping problem

Constructors

TableList [a] 

Instances

Instances details
(SizeCalculable a, Binary a) => Binary (TableList a) # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

Methods

put :: TableList a -> Put #

get :: Get (TableList a) #

putList :: [TableList a] -> Put #

newtype RestartInterval #

Constructors

RestartInterval Word16 

Instances

Instances details
Binary RestartInterval # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

getJpgImage :: Get JpgImage #

Like get from `instance Binary JpgImage`, but without the legacy semi-lazy implementation.

calculateSize :: SizeCalculable a => a -> Int #

dctBlockSize :: Num a => a #

parseECS :: Get ByteString #

Parses a Scan's ECS (Entropy-Coded Segment, the largest part of compressed image data) from the Get stream.

When this function is called, the parser's offset should be immediately behind the SOS tag.

As described on e.g. https://www.ccoderun.ca/programming/2017-01-31_jpeg/,

To find the next segment after the SOS, you must keep reading until you
find a 0xFF bytes which is not immediately followed by 0x00 (see "byte stuffing")
[or a reset marker's byte: 0xD0 through 0xD7].
Normally, this will be the EOI segment that comes at the end of the file.

where the 0xFF is the next segment's marker. See https://github.com/corkami/formats/blob/master/image/jpeg.md#entropy-coded-segment for more details.

This function returns the ECS, not including the next segment's marker on its trailing end.

parseECS_simple :: Get ByteString #

Simpler implementation of parseECS to allow an easier understanding of the logic, and to provide a comparison for correctness.

parseFrameOfKind :: JpgFrameKind -> Get (Maybe JpgFrame) #

Parses a single frame.

Returns Nothing when we encounter a frame we want to skip.

parseFrames :: Get [JpgFrame] #

Parse a list of JpgFrames.

parseFrameKinds :: Get [(JpgFrameKind, Int64, Int64)] #

Parse a list of JpgFrameKinds with their corresponding offsets and lengths (not counting the segment and frame markers into the lengths).

Useful for debugging.

parseToFirstFrameHeader :: Get (Maybe JpgFrameHeader) #

Parses forward, returning the first scan header encountered.

Should be used after skipUntilFrames.

Fails parsing when an SOS segment marker (JpgStartOfScan, resulting in JpgScanBlob) is encountered before an SOF segment marker (that results in JpgScans carrying the JpgFrameHeader).