JuicyPixels-3.3.9: Picture loading/serialization (in png, jpeg, bitmap, gif, tga, tiff and radiance)
Safe HaskellSafe-Inferred
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 Source #

Macroblock that can be transformed.

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

Create a new macroblock with the good array size

type DcCoefficient = Int16 Source #

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

data JpgImage Source #

Constructors

JpgImage 

Fields

Instances

Instances details
Generic JpgImage Source # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

Associated Types

type Rep JpgImage :: Type -> Type #

Methods

from :: JpgImage -> Rep JpgImage x #

to :: Rep JpgImage x -> JpgImage #

Show JpgImage Source # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

Binary JpgImage Source # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

Methods

put :: JpgImage -> Put #

get :: Get JpgImage #

putList :: [JpgImage] -> Put #

NFData JpgImage Source # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

Methods

rnf :: JpgImage -> () #

Eq JpgImage Source # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

type Rep JpgImage Source # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

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

data JpgComponent Source #

Constructors

JpgComponent 

Instances

Instances details
Generic JpgComponent Source # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

Associated Types

type Rep JpgComponent :: Type -> Type #

Show JpgComponent Source # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

Binary JpgComponent Source # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

NFData JpgComponent Source # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

Methods

rnf :: JpgComponent -> () #

Eq JpgComponent Source # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

type Rep JpgComponent Source # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

type Rep JpgComponent = D1 ('MetaData "JpgComponent" "Codec.Picture.Jpg.Internal.Types" "JuicyPixels-3.3.9-8TrKyMTj3IQ4xY3eA8GFM4" '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 Source #

Instances

Instances details
Generic JpgFrameHeader Source # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

Associated Types

type Rep JpgFrameHeader :: Type -> Type #

Show JpgFrameHeader Source # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

Binary JpgFrameHeader Source # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

NFData JpgFrameHeader Source # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

Methods

rnf :: JpgFrameHeader -> () #

Eq JpgFrameHeader Source # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

type Rep JpgFrameHeader Source # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

type Rep JpgFrameHeader = D1 ('MetaData "JpgFrameHeader" "Codec.Picture.Jpg.Internal.Types" "JuicyPixels-3.3.9-8TrKyMTj3IQ4xY3eA8GFM4" '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 Source #

Instances

Instances details
Generic JpgFrame Source # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

Associated Types

type Rep JpgFrame :: Type -> Type #

Methods

from :: JpgFrame -> Rep JpgFrame x #

to :: Rep JpgFrame x -> JpgFrame #

Show JpgFrame Source # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

NFData JpgFrame Source # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

Methods

rnf :: JpgFrame -> () #

Eq JpgFrame Source # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

type Rep JpgFrame Source # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

type Rep JpgFrame = D1 ('MetaData "JpgFrame" "Codec.Picture.Jpg.Internal.Types" "JuicyPixels-3.3.9-8TrKyMTj3IQ4xY3eA8GFM4" '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 Source #

Instances

Instances details
Generic JpgFrameKind Source # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

Associated Types

type Rep JpgFrameKind :: Type -> Type #

Show JpgFrameKind Source # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

Binary JpgFrameKind Source # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

NFData JpgFrameKind Source # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

Methods

rnf :: JpgFrameKind -> () #

Eq JpgFrameKind Source # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

type Rep JpgFrameKind Source # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

type Rep JpgFrameKind = D1 ('MetaData "JpgFrameKind" "Codec.Picture.Jpg.Internal.Types" "JuicyPixels-3.3.9-8TrKyMTj3IQ4xY3eA8GFM4" '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 Source #

Constructors

JpgScanHeader 

Instances

Instances details
Generic JpgScanHeader Source # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

Associated Types

type Rep JpgScanHeader :: Type -> Type #

Show JpgScanHeader Source # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

Binary JpgScanHeader Source # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

NFData JpgScanHeader Source # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

Methods

rnf :: JpgScanHeader -> () #

Eq JpgScanHeader Source # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

type Rep JpgScanHeader Source # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

type Rep JpgScanHeader = D1 ('MetaData "JpgScanHeader" "Codec.Picture.Jpg.Internal.Types" "JuicyPixels-3.3.9-8TrKyMTj3IQ4xY3eA8GFM4" '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 Source #

Constructors

JpgQuantTableSpec 

Fields

Instances

Instances details
Generic JpgQuantTableSpec Source # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

Associated Types

type Rep JpgQuantTableSpec :: Type -> Type #

Show JpgQuantTableSpec Source # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

Binary JpgQuantTableSpec Source # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

NFData JpgQuantTableSpec Source # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

Methods

rnf :: JpgQuantTableSpec -> () #

Eq JpgQuantTableSpec Source # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

type Rep JpgQuantTableSpec Source # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

type Rep JpgQuantTableSpec = D1 ('MetaData "JpgQuantTableSpec" "Codec.Picture.Jpg.Internal.Types" "JuicyPixels-3.3.9-8TrKyMTj3IQ4xY3eA8GFM4" '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 Source #

Constructors

JpgHuffmanTableSpec 

Fields

Instances

Instances details
Generic JpgHuffmanTableSpec Source # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

Associated Types

type Rep JpgHuffmanTableSpec :: Type -> Type #

Show JpgHuffmanTableSpec Source # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

Binary JpgHuffmanTableSpec Source # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

NFData JpgHuffmanTableSpec Source # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

Methods

rnf :: JpgHuffmanTableSpec -> () #

Eq JpgHuffmanTableSpec Source # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

type Rep JpgHuffmanTableSpec Source # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

type Rep JpgHuffmanTableSpec = D1 ('MetaData "JpgHuffmanTableSpec" "Codec.Picture.Jpg.Internal.Types" "JuicyPixels-3.3.9-8TrKyMTj3IQ4xY3eA8GFM4" '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 Source #

Constructors

JpgScanSpecification 

Fields

Instances

Instances details
Generic JpgScanSpecification Source # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

Associated Types

type Rep JpgScanSpecification :: Type -> Type #

Show JpgScanSpecification Source # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

Binary JpgScanSpecification Source # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

NFData JpgScanSpecification Source # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

Methods

rnf :: JpgScanSpecification -> () #

Eq JpgScanSpecification Source # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

type Rep JpgScanSpecification Source # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

type Rep JpgScanSpecification = D1 ('MetaData "JpgScanSpecification" "Codec.Picture.Jpg.Internal.Types" "JuicyPixels-3.3.9-8TrKyMTj3IQ4xY3eA8GFM4" '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 Source #

Instances

Instances details
Generic JpgColorSpace Source # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

Associated Types

type Rep JpgColorSpace :: Type -> Type #

Show JpgColorSpace Source # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

NFData JpgColorSpace Source # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

Methods

rnf :: JpgColorSpace -> () #

Eq JpgColorSpace Source # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

type Rep JpgColorSpace Source # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

type Rep JpgColorSpace = D1 ('MetaData "JpgColorSpace" "Codec.Picture.Jpg.Internal.Types" "JuicyPixels-3.3.9-8TrKyMTj3IQ4xY3eA8GFM4" '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 Source #

Constructors

AdobeUnknown

Value 0

AdobeYCbCr

value 1

AdobeYCck

value 2

Instances

Instances details
Generic AdobeTransform Source # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

Associated Types

type Rep AdobeTransform :: Type -> Type #

Show AdobeTransform Source # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

Binary AdobeTransform Source # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

NFData AdobeTransform Source # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

Methods

rnf :: AdobeTransform -> () #

Eq AdobeTransform Source # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

type Rep AdobeTransform Source # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

type Rep AdobeTransform = D1 ('MetaData "AdobeTransform" "Codec.Picture.Jpg.Internal.Types" "JuicyPixels-3.3.9-8TrKyMTj3IQ4xY3eA8GFM4" '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 Source #

Instances

Instances details
Generic JpgAdobeApp14 Source # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

Associated Types

type Rep JpgAdobeApp14 :: Type -> Type #

Show JpgAdobeApp14 Source # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

Binary JpgAdobeApp14 Source # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

NFData JpgAdobeApp14 Source # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

Methods

rnf :: JpgAdobeApp14 -> () #

Eq JpgAdobeApp14 Source # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

type Rep JpgAdobeApp14 Source # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

type Rep JpgAdobeApp14 = D1 ('MetaData "JpgAdobeApp14" "Codec.Picture.Jpg.Internal.Types" "JuicyPixels-3.3.9-8TrKyMTj3IQ4xY3eA8GFM4" '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 Source #

Instances

Instances details
Generic JpgJFIFApp0 Source # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

Associated Types

type Rep JpgJFIFApp0 :: Type -> Type #

Show JpgJFIFApp0 Source # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

Binary JpgJFIFApp0 Source # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

NFData JpgJFIFApp0 Source # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

Methods

rnf :: JpgJFIFApp0 -> () #

Eq JpgJFIFApp0 Source # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

type Rep JpgJFIFApp0 Source # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

type Rep JpgJFIFApp0 = D1 ('MetaData "JpgJFIFApp0" "Codec.Picture.Jpg.Internal.Types" "JuicyPixels-3.3.9-8TrKyMTj3IQ4xY3eA8GFM4" '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 Source #

Size: 1

Instances

Instances details
Generic JFifUnit Source # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

Associated Types

type Rep JFifUnit :: Type -> Type #

Methods

from :: JFifUnit -> Rep JFifUnit x #

to :: Rep JFifUnit x -> JFifUnit #

Show JFifUnit Source # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

Binary JFifUnit Source # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

Methods

put :: JFifUnit -> Put #

get :: Get JFifUnit #

putList :: [JFifUnit] -> Put #

NFData JFifUnit Source # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

Methods

rnf :: JFifUnit -> () #

Eq JFifUnit Source # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

type Rep JFifUnit Source # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

type Rep JFifUnit = D1 ('MetaData "JFifUnit" "Codec.Picture.Jpg.Internal.Types" "JuicyPixels-3.3.9-8TrKyMTj3IQ4xY3eA8GFM4" '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 Source #

Type introduced only to avoid some typeclass overlapping problem

Constructors

TableList [a] 

Instances

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

Defined in Codec.Picture.Jpg.Internal.Types

Methods

put :: TableList a -> Put #

get :: Get (TableList a) #

putList :: [TableList a] -> Put #

newtype RestartInterval Source #

Constructors

RestartInterval Word16 

Instances

Instances details
Binary RestartInterval Source # 
Instance details

Defined in Codec.Picture.Jpg.Internal.Types

getJpgImage :: Get JpgImage Source #

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

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

parseECS :: Get ByteString Source #

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 Source #

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

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

Parses a single frame.

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

parseFrames :: Get [JpgFrame] Source #

Parse a list of JpgFrames.

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

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) Source #

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).