I      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~   Safe-InferredNone23468=HKMrThis typeclass exist for performance reason, it allow to pack a pixel value to a simpler "primitive" data type to allow faster writing to moemory.VPrimitive type asociated to the current pixel It's Word32 for PixelRGBA8 for instance<The packing function, allowing to transform to a primitive.,Inverse transformation, to speed up readingEHelper class to help extract a luma plane out of an image or a pixel%Compute the luminance part of a pixeljExtract a luma plane out of an image. This method is in the typeclass to help performant implementation. LjpegToGrayScale :: FilePath -> FilePath -> IO () jpegToGrayScale source dest;Traversal type matching the definition in the Lens package.3Helpers to embed a rankNTypes inside an ApplicativegThis class abstract colorspace conversion. This conversion can be lossy, which ColorConvertible cannot GPass a pixel from a colorspace (say RGB) to the second one (say YCbCr) >Helper function to convert a whole image by taking a copy it. =Implement upcasting for pixel types. Minimal declaration of  V. It is strongly recommended to overload promoteImage to keep performance acceptable WConvert a pixel type to another pixel type. This operation should never lose any data. NChange the underlying pixel type of an image by performing a full copy of it.tDefinition of pixels used in images. Each pixel has a color space, and a representative component (Word8 or Float).Type of the pixel component, "classical" images would have Word8 type as their PixelBaseComponent, HDR image would have Float for instanceoCall the function for every component of the pixels. For example for RGB pixels mixWith is declared like this: fmixWith f (PixelRGB8 ra ga ba) (PixelRGB8 rb gb bb) = PixelRGB8 (f 0 ra rb) (f 1 ga gb) (f 2 ba bb)Extension of the  which separate the treatment of the color components of the alpha value (transparency component). For pixel without alpha components, it is equivalent to mixWith. mixWithAlpha f fa (PixelRGBA8 ra ga ba aa) (PixelRGB8 rb gb bb ab) = PixelRGBA8 (f 0 ra rb) (f 1 ga gb) (f 2 ba bb) (fa aa ab)Return the opacity of a pixel, if the pixel has an alpha layer, return the alpha value. If the pixel doesn't have an alpha value, return a value representing the opaqueness.,Return the number of components of the pixelApply a function to each component of a pixel. If the color type possess an alpha (transparency channel), it is treated like the other color components.1Calculate the index for the begining of the pixel@Calculate theindex for the begining of the pixel at position x yExtract a pixel at a given position, (x, y), the origin is assumed to be at the corner top left, positive y to the bottom of the image'Same as pixelAt but for mutable images.0Write a pixel in a mutable image at position x yUnsafe version of pixelAt, read a pixel at the given index without bound checking (if possible). The index is expressed in number (PixelBaseComponent a)Unsafe version of readPixel, read a pixel at the given position without bound checking (if possible). The index is expressed in number (PixelBaseComponent a)Unsafe version of writePixel, write a pixel at the given position without bound checking. This can be _really_ unsafe. The index is expressed in number (PixelBaseComponent a)rPixel type storing 16bit red, green, blue and alpha (RGBA) information. Values are stored in the following order:RedGreenBlueAlpha{Classical pixel type storing 8bit red, green, blue and alpha (RGBA) information. Values are stored in the following order:RedGreenBlueAlpha!wPixel type storing 16bit cyan, magenta, yellow and black (CMYK) information. Values are stored in the following order:CyanMagentaYellowBlack#vPixel type storing 8bit cyan, magenta, yellow and black (CMYK) information. Values are stored in the following order:CyanMagentaYellowBlack%Pixel type storing 8bit luminance, blue difference and red difference (YCbCr) information. Values are stored in the following order: Y (luminance)CbCr'HDR pixel type storing floating point 32bit red, green and blue (RGB) information. Same value range and comments apply as for 3,. Values are stored in the following order:RedGreenBlue)jPixel type storing 16bit red, green and blue (RGB) information. Values are stored in the following order:RedGreenBlue+2Pixel type storing value for the YCCK color space: Y (Luminance)CbCrBlack-qClassic pixel type storing 8bit red, green and blue (RGB) information. Values are stored in the following order:RedGreenBlue/lPixel type storing 16bit Luminance (Y) and alpha (A) information. Values are stored in the following order: LuminanceAlpha1kPixel type storing 8bit Luminance (Y) and alpha (A) information. Values are stored in the following order: LuminanceAlpha3Type alias for 32bit floating point greyscale pixels. The standard bounded value range is mapped to the closed interval [0,1] i.e. Kmap promotePixel [0, 1 .. 255 :: Pixel8] == [0/255, 1/255 .. 1.0 :: PixelF]4&Type alias for 32bit greyscale pixels.5&Type alias for 16bit greyscale pixels.6uType alias for 8bit greyscale pixels. For simplicity, greyscale pixels use plain numbers instead of a separate type.7sImage type enumerating all predefined pixel types. It enables loading and use of images of different pixel types.85An image in the colorspace CMYK and 16 bits precision9An image in the colorspace CMYK:/An image in the colorspace used by Jpeg images.;)A true color image with alpha on 16 bits.<,An image in true color and an alpha channel.=An image with HDR pixels>(An image in true color with 16bit depth.?An image in true color.@4An image in greyscale with alpha channel on 16 bits.A,An image in greyscale with an alpha channel.BA greyscale HDR imageC'A greyscale image with 16bit componentsDA greyscale image.EImage or pixel buffer, the coordinates are assumed to start from the upper-left corner of the image, with the horizontal position first, then the vertical one. The image can be transformed in place.GWidth of the image in pixelsHHeight of the image in pixels.IYThe real image, to extract pixels at some position you should use the helpers functions.JXClass modeling transparent pixel, should provide a method to combine transparent pixelsK"Just return the opaque pixel valueLIaccess the transparency (alpha layer) of a given transparent pixel type.M>Define plane for the black component of the CMYK color space.O?Define plane for the yellow component of the CMYK color space.Q@Define plane for the magenta component of the CMYK color space.S=Define plane for the cyan component of the CMYK color space.U%Define the plane for the Cb componentW%Define the plane for the Cr componentY'Define the plane for the luma component[7Define the plane for the alpha (transparency) component]-Define the plane for the blue color component_.Define the plane for the green color componenta,Define the plane for the red color componentcClass used to describle plane present in the pixel type. If a pixel has a plane description associated, you can use the plane name to extract planes independently.=Retrieve the index of the component in the given pixel type.d-Type for the palette used in Gif & PNG files.eJThe main type of this package, one that most functions work on, is Image.Parameterized by the underlying pixel format it forms a rigid type. If you wish to store images of different or unknown pixel formats use 7.Image is essentially a rectangular pixel buffer of specified width and height. The coordinates are assumed to start from the upper-left corner of the image, with the horizontal position first and vertical second.gWidth of the image in pixelshHeight of the image in pixels.i]Image pixel data. To extract pixels at a given position you should use the helper functions.Internally pixel data is stored as consecutively packed lines from top to bottom, scanned from left to right within individual lines, from first to last color component within each pixel.jQExtract a color plane from an image given a present plane in the image examples: a extractRedPlane :: Image PixelRGB8 -> Image Pixel8 extractRedPlane = extractComponent PlaneRed kYExtract a plane of an image. Returns the requested color component as a greyscale image.-If you ask for a component out of bound, the  function will be called.l^For any image with an alpha component (transparency), drop it, returning a pure opaque image.>Iteration from to n in monadic context, without data keeping.mA`O(n)` Yield an immutable copy of an image by making a copy of itn?`O(n)` Yield a mutable copy of an image by making a copy of it.o`O(1)` Unsafe convert an imutable image to an mutable one without copying. The source image shouldn't be used after this operation.p`O(1)` Unsafe convert a mutable image to an immutable one without copying. The mutable image may not be used after this operation.q?Create a mutable image, filled with the given background color.rKCreate a mutable image with garbage as content. All data is uninitialized.sHelper function to help extract information from dynamic image. To get the width of a dynamic image, you can use the following snippet: HdynWidth :: DynamicImage -> Int dynWidth img = dynamicMap imageWidth imgtEquivalent of the {o function for the dynamic images. You can perform pixel colorspace independant operations with this function.For instance, if you want to extract a square crop of any image, without caring about colorspace, you can use the following snippet. dynSquare :: DynamicImage -> DynamicImage dynSquare = dynamicPixelMap squareImage squareImage :: Pixel a => Image a -> Image a squareImage img = generateImage (\x y -> pixelAt img x y) edge edge where edge = min (imageWidth img) (imageHeight img)uCreate an image given a function to generate pixels. The function will receive values from 0 to width-1 for the x parameter and 0 to height-1 for the y parameter. The coordinates 0,0 are the upper left corner of the image, and (width-1, height-1) the lower right corner..for example, to create a small gradient image: imageCreator :: String -> IO () imageCreator path = writePng path $ generateImage pixelRenderer 250 300 where pixelRenderer x y = PixelRGB8 x y 128vCreate an image using a monadic initializer function. The function will receive values from 0 to width-1 for the x parameter and 0 to height-1 for the y parameter. The coordinates 0,0 are the upper left corner of the image, and (width-1, height-1) the lower right corner.{The function is called for each pixel in the line from left to right (0 to width - 1) and for each line (0 to height - 1).wCreate an image given a function to generate pixels. The function will receive values from 0 to width-1 for the x parameter and 0 to height-1 for the y parameter. The coordinates 0,0 are the upper left corner of the image, and (width-1, height-1) the lower right corner.(the acc parameter is a user defined one.{The function is called for each pixel in the line from left to right (0 to width - 1) and for each line (0 to height - 1).x\Fold over the pixel of an image with a raster scan order: from top to bottom, left to rightyrFold over the pixel of an image with a raster scan order: from top to bottom, left to right, carrying out a statezFold over the pixel of an image with a raster scan order: from top to bottom, left to right. This functions is analog to the foldMap from the FoldableU typeclass, but due to the Pixel constraint, Image cannot be made an instance of it.{n equivalent for an image, working at the pixel level. Little example : a brightness function for an rgb image brightnessRGB8 :: Int -> Image PixelRGB8 -> Image PixelRGB8 brightnessRGB8 add = pixelMap brightFunction where up v = fromIntegral (fromIntegral v + add) brightFunction (PixelRGB8 r g b) = PixelRGB8 (up r) (up g) (up b)|rTraversal in "raster" order, from left to right the top to bottom. This traversal is matching pixelMap in spirit. Since 3.2.4}Traversal providing the pixel position with it's value. The traversal in raster order, from lef to right, then top to bottom. The traversal match pixelMapXY in spirit. Since 3.2.4~ Just like {K only the function takes the pixel coordinates as additional parameters.dCombine, pixel by pixel and component by component the values of 3 different images. Usage example: averageBrightNess c1 c2 c3 = clamp $ toInt c1 + toInt c2 + toInt c3 where clamp = fromIntegral . min 0 . max 255 toInt :: a -> Int toInt = fromIntegral ziPixelComponent3 averageBrightNess img1 img2 img38Perform a gamma correction for an image with HDR pixels.@Perform a tone mapping operation on an High dynamic range image.mThis function will fill an image with a simple packeable pixel. It will be faster than any unsafeWritePixel.*Fill a packeable pixel between two bounds.DRead a packeable pixel from an image. Equivalent to unsafeReadPixelFWrite a packeable pixel into an image. equivalent to unsafeWritePixel.&Free promotion for identic pixel types Function for color componentFunction for alpha component !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijkBThe component index, beginning at 0 ending at (componentCount - 1) Source imagelmnopqWidthHeightBackground colorrWidthHeightstuGenerating function, with x and y params.Width in pixelsHeight in pixelsv Image width Image heightGenerating functionsw"Function taking the state, x and y Initial stateWidth in pixelsHeight in pixelsxymonadic mapping function Initial stateImage to fold overz{|}~Pixel building function RGB sampleResulting sample*Gamma value, should be between 0.5 and 3.0Image to treat.Exposure parameterImage to treat.Image to write intoPixel to write#Start index in pixel base componentpixel count of pixel to writeImage to read from&Index in (PixelBaseComponent px) countImage to write into&Index in (PixelBaseComponent px) countPixel to write      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~efghiEFGHI7DCBA@?>=<;:98dqrmpno|}654312/0-.)*'( #$!"%&+,  JKL{~xyzstlvuwcab_`]^[\YZWXUVSTQROPMNjk   !"#$%&'()*+,-./01234567 DCBA@?>=<;:98EFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]None 3:=KM^Efficient representation of a left fold that preserves the fold's step function, initial accumulator, and extraction functionThis allows the _M instance to assemble derived folds that traverse the container only once+To specify how the palette will be created."Algorithm used to find the paletteDo we want to apply the dithering to the image. Enabling it often reduce compression ratio but enhance the perceived quality of the final image./Maximum number of color we want in the palette-Define which palette creation method is used.FVery fast algorithm (one pass), doesn't provide good looking results.`MedianMeanCut method, provide the best results (visualy) at the cost of increased calculations.XDefault palette option, which aim at the best quality and maximum possible colors (256)1Reduces an image to a color palette according to  PaletteOpts and returns the  indices image along with its d.`TModified median cut algorithm with optional ordered dithering. Returns an image of 6+ that acts as a matrix of indices into the d.a#A naive one pass Color Quantiation algorithm - Uniform Quantization. Simply take the most significant bits. The maxCols parameter is rounded down to the nearest power of 2, and the bits are divided among the three color channels with priority order green, red, blue. Returns an image of 6+ that acts as a matrix of indices into the d.bApply a strict left ^ to a Foldable containerMuch slower than b on lists because Foldable) operations currently do not trigger  build/foldr fusioncLike d, except with a more general e return value :fghijklmnopqr^s`atuvwxbcyz{|}~ *fihgjklmnopqr^s`atuvwxbcyz{|}~ None=KMiImport a image from an unsafe pointer The pointer must have a size of width * height * componentCount pxWidth in pixelsHeight in pixelsPointer to the raw dataNoneHMType used to read bits(Current bit index, current value, string"Bitify a list of things to decode.zDrop all bit until the bit of indice 0, usefull to parse restart marker, as they are byte aligned, but Huffman might not.sBitify a list of things to decode. Handle Jpeg escape code (0xFF 0x00), thus should be only used in JPEG decoding.%Append some data bits to a Put monad.%Append some data bits to a Put monad.#<The real data to be stored. Actual data should be in the LSB#Number of bit to write from 1 to 32<The real data to be stored. Actual data should be in the LSB#Number of bit to write from 1 to 32None?Gif image constraint from spec-gif89a, code size max : 12 bits. None None3E CEnumeration used to search in the tables for different components. Represent a compact array of 8 * 8 values. The size is not guarenteed by type system, but if makeMacroBlock is used, everything should be fine size-wise 1Tree storing the code used for huffman encoding. no value present We should output the value 5If bit is 0 take the first subtree, if 1, the right. =Helper function to create pure macro block of the good size. aTransform parsed coefficients from the jpeg header to a tree which can be used to decode data. $From the Table K.3 of ITU-81 (p153) $From the Table K.4 of ITU-81 (p153) $From the Table K.5 of ITU-81 (p154) None=KM 0 : DC, 1 : AC, stored on 4 bitsStored on 4 bitsAType introduced only to avoid some typeclass overlapping problemStored on 4 bitsStored on 4 bits (begin, end)Encoded as 4 bitsEncoded as 4 bitsEncoded as 4 bitsEncoded as 4 bitsStored with 4 bitsStored with 4 bitsvalue 2value 1Value 0#Macroblock that can be transformed.rType only used to make clear what kind of integer we are carrying Might be transformed into newtype in the future0Create a new macroblock with the good array size      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqf      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOP]^_4      !"#$%&'( 10/.-,+*)2:9876543;PONMLKJIHGFEDCBA@?>=<QRSTUVWXYZ[\]^_`abcdefghijklmnopqNone=KrReference implementation of the DCT, directly implementing the formula of ITU-81. It's slow as hell, perform to many operations, but is accurate and a good reference point.sFast DCT extracted from libjpegrtuvwxyz{|}~srsrtuvwxyz{|}~sNone3=K[Algorithm to call to perform an IDCT, return the same block that the one given as input. 1Perform a Jpeg level shift in a mutable fashion.   None1/Different known interlace methods for PNG imageUse the Adam7 ordering, see adam7ReorderingFNo interlacing, basic data ordering, line by line from left to right.wThe pixels value should be : +---+---+ | c | b | +---+---+ | a | x | +---+---+ x being the current filtered pixelFilt(x) = Orig(x) - PaethPredictor(Orig(a), Orig(b), Orig(c)), Recon(x) = Filt(x) + PaethPredictor(Recon(a), Recon(b), Recon(c))jFilt(x) = Orig(x) - floor((Orig(a) + Orig(b)) / 2), Recon(x) = Filt(x) + floor((Recon(a) + Recon(b)) / 2)>Filt(x) = Orig(x) - Orig(b), Recon(x) = Filt(x) + Recon(b)>Filt(x) = Orig(x) - Orig(a), Recon(x) = Filt(x) + Recon(a)%Filt(x) = Orig(x), Recon(x) = Filt(x)#Low level access to PNG informationThe real uncompressed image8List of raw chunk where some user data might be present.GPNG chunk representing some extra information found in the parsed file.The raw data inside the chunkThe name of the chunk..Data structure during real png loading/parsing4Palette with indices beginning at 0 to elemcount - 1*Raw parsed image which need to be decoded.GWhat kind of information is encoded in the IDAT section of the PngFileStarting from 0Width of the following frameHeight of the following frameEncoded in a Word8,Alpha blend to the output buffer. Has value '1'#Overwrite output buffer. has value '0'Encoded in a Word8the frame's region of the output buffer is to be reverted to the previous contents before rendering the next frame. Has Value 2The frame's region of the output buffer is to be cleared to fully transparent black before rendering the next frame. Has Value 1}No disposal is done on this frame before rendering the next; the contents of the output buffer are left as is. Has Value 0"Generic header used in PNG images.Image width in number of pixelImage height in number of pixelNumber of bit per sample5Kind of png image (greyscale, true color, indexed...)Compression method used Must be 06If the image is interlaced (for progressive rendering)9Value used to identify a png chunk, must be 4 bytes long.!Parse a palette from a png chunk.4Parse method for a png chunk, without decompression.aImplementation of the get method for the PngRawImage, unpack raw data, without decompressing it.WSignature signalling that the following data will be a png image in the png bit stream(Helper function to help pack signatures.9Signature for the header chunk of png (must be the first)HSignature for a palette chunk in the pgn file. Must occure before iDAT.3Signature for a data chuck (with image parts in it)>Signature for the last chunk of a png image, telling the end.*From the Annex D of the png specification.SCompute the CRC of a raw buffer, as described in annex D of the PNG specification.WJ# None23=KM(Encode an image into a png if possible. STransform an image into a png encoded bytestring, ready to be written as a file. =Helper function to directly write an image as a png on disk. jWrite a dynamic image in a .png image file if possible. The same restriction as encodeDynamicPng apply. nEncode a paletted image as a color indexed 8-bit PNG. the palette must have between 1 and 256 values in it. FEncode a dynamic image in bmp if possible, supported pixel type are : Y8 Y16 YA8 YA16 RGB8 RGB16 RGBA8 RGBA16 None=K;Same as for DcCoefficient, to provide nicer type signatures+Apply a quantization matrix to a macroblock8Unpack an int of the given size encoded from MSB to LSB.Given a size coefficient (how much a pixel span horizontally and vertically), the position of the macroblock, return a list of indices and value to be stored in an array (like the final image)This is one of the most important function of the decoding, it form the barebone decoding pipeline for macroblock. It's all there is to know for macro block transformation"     Component countWidth coefficientHeight coefficientxyComponent index          None24EM >Iteration from to n in monadic context, without data keeping.!"#$%&'()*+,- .     . !"#$%&'()*+,- .None 234=HKMDThis typeclass determine if a pixel can be saved in the TGA format.TTransform a raw tga image to an image, without modifying the underlying pixel type.3This function can output the following pixel types:PixelY8 PixelRGB8 PixelRGBA89Helper function to directly write an image a tga on disk.LTransform a compatible image to a raw bytestring representing a Targa file.P/0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghi Type witnessjkl Type witnessmnopqrstuvwxyz)/0123456789:;<=>?@ABCD EFGHIJKLMNOPQRSTUVW[ZYX\_^]`abcdefghijklmnopqrstuvwxyzNone 2346=EKM!CClass defining which pixel types can be serialized in a Tiff file.{.Final image and size, return offset and vector|8}6~543210210ShortShortShortShort Short or long Short or longShort or long type Rational type Rational typeShort or long typeShort or long type Short typeBecause having a polymorphic get with endianness is to nice to pass on, introducing this helper type class, which is just a superset of Binary, but formalising a parameter passing into it.All the IFD must be written in order according to the tag value of the IFD. To avoid getting to much restriction in the serialization code, just sort it.iGiven an official offset and a list of IFD, update the offset information of the IFD with extended data.dwhile mandatory some images don't put correct rowperstrip. So replacing 0 with actual image height.wDecode a tiff encoded image while preserving the underlying pixel type (except for Y32 which is truncated to 16 bits).3This function can output the following pixel types: PixelY8PixelY16PixelYA8 PixelYA16 PixelRGB8 PixelRGB16 PixelRGBA8 PixelRGBA16 PixelCMYK8 PixelCMYK16RTransform an image into a Tiff encoded bytestring, ready to be written as a file.=Helper function to directly write an image as a tiff on disk.HThe Word8 instance is just a passthrough, to avoid copying memory twice{(Type witness, just for the type checker.(Temporary buffer handling decompression.Line size in pixelsWrite index, in bytessize, in bytesStride Final buffer|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEP{~}|,       !"#$%&'()*+,-./0123456789:;<=>?@ABCDENone=KBDecode an HDR (radiance) image, the resulting pixel type can be : PixelRGBFFWrite an High dynamic range image into a radiance image file on disk.QWrite a RLE encoded High dynamic range image into a radiance image file on disk.^Encode an High dynamic range image into a radiance image file format. Alias for encodeRawHDRZEncode an High dynamic range image into a radiance image file format. without compressionEncode an High dynamic range image into a radiance image file format using a light RLE compression. Some problems seem to arise with some image viewer.3FGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqr*FGHIJKLMONPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrNone3=KMsStored on 3 bitstSection 20 of spec-gif89auSection 18 of spec-gif89avStored on 16 bitswStored on 16 bitsxStored on 8 bitsyStored on 1 bitzStored on 3 bits{Stored on 1 bit|Stored on 3 bits7Help to control the behaviour of GIF animation looping.0The animation will repeat n times before stoping2The animation will restart once the end is reached/The animation will stop once the end is reached]Delay to wait before showing the next Gif image. The delay is expressed in 100th of seconds.zTransform a raw gif image to an image, witout modifying the pixels. This function can output the following pixel types : PixelRGB8 PixelRGBA8VTransform a raw gif to a list of images, representing all the images of an animation..Extract a list of frame delays from a raw gif.,Default palette to produce greyscale images.'Encode a gif animation to a bytestring.#Every image must have the same size3Every palette must have between one and 256 colors.)Encode a greyscale image to a bytestring.VEncode an image with a given palette. Can return errors if the palette is ill-formed.,A palette must have between 1 and 256 colors,Write a greyscale in a gif file on the disk.4Write a list of images as a gif animation in a file.#Every image must have the same size3Every palette must have between one and 256 colors.+Write a gif image with a palette to a file.,A palette must have between 1 and 256 colorso}~stuvwxyz{|?}~st uvwxyz{|None 23=KM TDirectly stolen from the definition in the standard (on W3C page), pixel predictor.Simple structure used to hold information about Adam7 deinterlacing. A structure is used to avoid pollution of the module namespace.The real info about the matrix.Apply a filtering method on a reduced image. Apply the filter on each line, using the previous line (the one above it) to perform some prediction on the value.!Unpack lines where bit depth is 8!Unpack lines where bit depth is 1 Unpack lines when bit depth is 2_Transform a scanline to a bunch of bytes. Bytes are then packed into pixels at a further step.]Given data and image size, recreate an image with deinterlaced data for PNG's adam 7 method.Ddeinterlace picture in function of the method indicated in the iHDRTransform a raw png image to an image, without modifying the underlying pixel type. If the image is greyscale and < 8 bits, a transformation to RGBA8 is performed. This should change in the future. The resulting image let you manage the pixel types.3This function can output the following pixel types:PixelY8PixelY16PixelYA8 PixelYA16 PixelRGB8 PixelRGB16 PixelRGBA8 PixelRGBA16& Image size None 234=EKM1Assume the macro block is initialized with zeroesYDecompress a macroblock from a bitstream given the current configuration from the frame.nThis pseudo interpreter interpret the Jpg frame for the huffman, quant table and restart interval parameters.Try to decompress a jpeg file and decompress. The colorspace is still YCbCr if you want to perform computation on the luma part. You can convert it to RGB using   from the  typeclass.4This function can output the following pixel types :PixelY8PixelYA8 PixelRGB8 PixelYCbCr8zEncode an image in jpeg at a reasonnable quality level. If you want better quality or reduced file size, you should use {Function to call to encode an image to jpeg. The quality factor should be between 0 and 100 (100 being the best quality).+ component indexxy   Tree used for DC coefficientTree used for Ac coefficientCurrent quantization table#A zigzag table, to avoid allocationPrevious dc value component indexxyComponent indexxyComponent indexxyResult image to write into Source image*Mutable block where to put extracted blockPlaneX sampling factorY sampling factorSample per pixelBlock xBlock yQuality factorImage to encode Encoded JPEG       None 234=KM UAll the instance of this class can be written as a bitmap file using this library.  Pixels per meter !Pixels per meter " in bytes _Try to decode a bitmap image. Right now this function can output the following pixel types :  PixelRGB8 Pixel8 0Write an image in a file use the bitmap format. PEncode an image into a bytestring in .bmp format ready to be written on disk. mWrite a dynamic image in a .bmp image file if possible. The same restriction as encodeDynamicBitmap apply. FEncode a dynamic image in bmp if possible, supported pixel type are : RGB8 RGBA8 Y8 #9Convert an image to a bytestring ready to be serialized. .$%&'()*+,-./01 !23456"789:;<=>?@AB#CDEFG$%&'() *+,-./01 !23456"789:;<=>?@AB#CDEFG None=K|This function will try to do anything to encode an image as RADIANCE, make all color conversion and such. Equivalent of  decodeImage for radiance encoding xThis function will try to do anything to encode an image as JPEG, make all color conversion and such. Equivalent of  decodeImage for jpeg encoding wThis function will try to do anything to encode an image as PNG, make all color conversion and such. Equivalent of  decodeImage for PNG encoding zThis function will try to do anything to encode an image as a Tiff, make all color conversion and such. Equivalent of  decodeImage for Tiff encoding zThis function will try to do anything to encode an image as bitmap, make all color conversion and such. Equivalent of  decodeImage for Bitmap encoding This function will try to do anything to encode an image as a gif, make all color conversion and quantization. Equivalent of  decodeImage for gif encoding HIJKL HIJKLNone3=KM0Return the first Right thing, accumulating errorUEncode a full color image to a gif by applying a color quantization algorithm on it.TWrite a full color image to a gif by applying a color quantization algorithm on it.mHelper function to create a gif animation. All the images of the animation are separated by the same delay.IHelper function to write a gif animation on disk. See encodeGifAnimationJLoad an image file without even thinking about it, it does everything as If you want to decode an image in a bytestring without even thinking in term of format or whatever, this is the function to use. It will try to decode in each known format and if one decoding succeeds, it will return the decoded image in it's own colorspace.>Helper function trying to load a png file from a file on disk.>Helper function trying to load a gif file from a file on disk.=Helper function trying to load tiff file from a file on disk.GHelper function trying to load all the images of an animated gif file.Try to load a jpeg file and decompress. The colorspace is still YCbCr if you want to perform computation on the luma part. You can convert it to RGB using colorSpaceConversion.:Try to load a .bmp file. The colorspace would be RGB or Y.WTry to load a .pic file. The colorspace can only be RGB with floating point precision."Try to load a .tga file from disk.Save an image to a '.jpg'2 file, will do everything it can to save an image.Save an image to a '.gif', file, will do everything it can to save it.Save an image to a '.tiff'2 file, will do everything it can to save an image.Save an image to a '.hdr'2 file, will do everything it can to save an image.Save an image to a '.png'[ file, will do everything it can to save an image. For example, a simple transcoder to png transcodeToPng :: FilePath -> FilePath -> IO () transcodeToPng pathIn pathOut = do eitherImg <- readImage pathIn case eitherImg of Left _ -> return () Right img -> savePngImage pathOut imgSave an image to a '.bmp'2 file, will do everything it can to save an image.MN !"#$%&'()*-./012356789:;<=>?@ABCDdefghiuvw{|}ׇ{uwv|}efghi7DCBA@?>=<;:98d65312/0-.)*'( %&#$!"MNO !"#$%&'()*+,-./01234566778899::;;<<==>>??@@ABCDEFGHIJKLMNOPQRSSTUVWXYZZ[[\\]]^^__``aabbccddefgghijklmnopqrstuvwxyz{|}~          !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnoopqrstuu`vwxyz{|}~          !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyyz{|}~        !!""##$%&'(()*+,-./01234556789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{{|}~      !"#$%&'(()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSSTUVWWXYZ[\]^^_`abccdefghijklmJnopqrstuKvwxyz{|}~DEF                                                                                     JuicyPixels-3.2.4Codec.Picture.TypesCodec.Picture.ColorQuant Codec.PictureCodec.Picture.PngCodec.Picture.TgaCodec.Picture.TiffCodec.Picture.HDRCodec.Picture.GifCodec.Picture.JpgCodec.Picture.BitmapCodec.Picture.SavingCodec.Picture.InternalHelper"Codec.Picture.VectorByteConversionCodec.Picture.BitWriterCodec.Picture.Gif.LZWCodec.Picture.Gif.LZWEncodingCodec.Picture.Jpg.DefaultTableCodec.Picture.Jpg.TypesCodec.Picture.Jpg.FastDctCodec.Picture.Jpg.FastIdctCodec.Picture.Png.TypeCodec.Picture.Png.ExportCodec.Picture.Jpg.CommonCodec.Picture.Jpg.ProgressivePackeablePixelPackedRepresentation packPixel unpackPixelLumaPlaneExtractable computeLumaextractLumaPlane TraversalColorSpaceConvertible convertPixel convertImageColorConvertible promotePixel promoteImagePixelPixelBaseComponentmixWith mixWithAlpha pixelOpacitycomponentCountcolorMappixelBaseIndexmutablePixelBaseIndexpixelAt readPixel writePixel unsafePixelAtunsafeReadPixelunsafeWritePixel PixelRGBA16 PixelRGBA8 PixelCMYK16 PixelCMYK8 PixelYCbCr8 PixelRGBF PixelRGB16 PixelYCbCrK8 PixelRGB8 PixelYA16PixelYA8PixelFPixel32Pixel16Pixel8 DynamicImage ImageCMYK16 ImageCMYK8 ImageYCbCr8 ImageRGBA16 ImageRGBA8 ImageRGBF ImageRGB16 ImageRGB8 ImageYA16ImageYA8ImageYFImageY16ImageY8 MutableImagemutableImageWidthmutableImageHeightmutableImageDataTransparentPixeldropTransparencygetTransparency PlaneBlack PlaneYellow PlaneMagenta PlaneCyanPlaneCbPlaneCr PlaneLuma PlaneAlpha PlaneBlue PlaneGreenPlaneRed ColorPlanePaletteImage imageWidth imageHeight imageDataextractComponentunsafeExtractComponentdropAlphaLayer freezeImage thawImageunsafeThawImageunsafeFreezeImagecreateMutableImagenewMutableImage dynamicMapdynamicPixelMap generateImage withImagegenerateFoldImage pixelFold pixelFoldM pixelFoldMappixelMap imagePixels imageIPixels pixelMapXYzipPixelComponent3gammaCorrection toneMapping fillImageWithunsafeWritePixelBetweenAtreadPackedPixelAtwritePackedPixelAtPaletteOptionspaletteCreationMethodenableImageDitheringpaletteColorCountPaletteCreationMethodUniform MedianMeanCutdefaultPaletteOptions palettizeimageFromUnsafePtr PngSavable encodePngwritePngwriteDynamicPngencodePalettedPngencodeDynamicPng TgaSaveable decodeTgawriteTga encodeTga TiffSaveable decodeTiff encodeTiff writeTiff decodeHDRwriteHDRwriteRLENewStyleHDR encodeHDR encodeRawHDRencodeRLENewStyleHDR GifLooping LoopingRepeatLoopingForever LoopingNeverGifDelay decodeGifdecodeGifImagesgetDelaysGifImages greyPaletteencodeGifImagesencodeGifImageencodeGifImageWithPalette writeGifImagewriteGifImageswriteGifImageWithPalette decodePng decodeJpeg encodeJpegencodeJpegAtQuality BmpEncodable decodeBitmap writeBitmap encodeBitmapwriteDynamicBitmapencodeDynamicBitmapimageToRadiance imageToJpg imageToPng imageToTiff imageToBitmap imageToGifencodeColorReducedGifImagewriteColorReducedGifImageencodeGifAnimationwriteGifAnimation readImage decodeImagereadPngreadGifreadTiff readGifImagesreadJpeg readBitmapreadHDRreadTGA saveJpgImage saveGifImage saveTiffImagesaveRadianceImage savePngImage saveBmpImagedecoderunGet runGetStrictgetRemainingBytesgetRemainingLazyBytesGenSTtoComponentIndexbaseGHC.ErrerrorlineMapGHC.Basemap$fColorConvertibleaa genActionlineFoldstridewritePx freezeGenST scaleBitsoneHalffixrYTabgYTabbYTabrCbTabgCbTabbCbTabgCrTabbCrTabcrRTabcbBTabcrGTabcbGTabintegralRGBToCMYK$fPackeablePixelPixelYA8$fPackeablePixelPixelYA16$fPackeablePixelPixelCMYK16$fPackeablePixelPixelCMYK8$fPackeablePixelPixelRGBA16$fPackeablePixelPixelRGBA8$fPackeablePixelFloat$fPackeablePixelWord32$fPackeablePixelWord16$fPackeablePixelWord8!$fColorPlanePixelCMYK16PlaneBlack"$fColorPlanePixelCMYK16PlaneYellow#$fColorPlanePixelCMYK16PlaneMagenta $fColorPlanePixelCMYK16PlaneCyan,$fColorSpaceConvertiblePixelCMYK16PixelRGB16$fPixelPixelCMYK16 $fColorPlanePixelCMYK8PlaneBlack!$fColorPlanePixelCMYK8PlaneYellow"$fColorPlanePixelCMYK8PlaneMagenta$fColorPlanePixelCMYK8PlaneCyan*$fColorSpaceConvertiblePixelRGB8PixelCMYK8-$fColorSpaceConvertiblePixelYCbCrK8PixelCMYK8,$fColorSpaceConvertiblePixelYCbCrK8PixelRGB8$fPixelPixelYCbCrK8*$fColorSpaceConvertiblePixelCMYK8PixelRGB8$fPixelPixelCMYK8$fColorPlanePixelYCbCr8PlaneCr$fColorPlanePixelYCbCr8PlaneCb $fColorPlanePixelYCbCr8PlaneLuma+$fColorSpaceConvertiblePixelYCbCr8PixelRGB8+$fColorSpaceConvertiblePixelRGB8PixelYCbCr8$fColorSpaceConvertibleaa$fPixelPixelYCbCr8!$fColorPlanePixelRGBA16PlaneAlpha $fColorPlanePixelRGBA16PlaneBlue!$fColorPlanePixelRGBA16PlaneGreen$fColorPlanePixelRGBA16PlaneRed'$fTransparentPixelPixelRGBA16PixelRGB16$fPixelPixelRGBA16 $fColorPlanePixelRGBA8PlaneAlpha$fColorPlanePixelRGBA8PlaneBlue $fColorPlanePixelRGBA8PlaneGreen$fColorPlanePixelRGBA8PlaneRed'$fColorConvertiblePixelRGBA8PixelRGBA16$fPixelPixelRGBA8$fLumaPlaneExtractablePixelRGB8$fColorPlanePixelRGB8PlaneBlue$fColorPlanePixelRGB8PlaneGreen$fColorPlanePixelRGB8PlaneRed&$fColorConvertiblePixelRGB8PixelRGBA16%$fColorConvertiblePixelRGB8PixelRGB16$$fColorConvertiblePixelRGB8PixelRGBF%$fColorConvertiblePixelRGB8PixelRGBA8$fPixelPixelRGB8 $fLumaPlaneExtractablePixelRGB16'$fColorConvertiblePixelRGB16PixelRGBA16,$fColorSpaceConvertiblePixelRGB16PixelCMYK16$fColorPlanePixelRGB16PlaneBlue $fColorPlanePixelRGB16PlaneGreen$fColorPlanePixelRGB16PlaneRed$fPixelPixelRGB16$fColorPlanePixelRGBFPlaneBlue$fColorPlanePixelRGBFPlaneGreen$fColorPlanePixelRGBFPlaneRed$fPixelPixelRGBF!$fTransparentPixelPixelYA16Word16$fColorPlanePixelYA16PlaneAlpha$fColorPlanePixelYA16PlaneLuma&$fColorConvertiblePixelYA16PixelRGBA16$fPixelPixelYA16$fLumaPlaneExtractablePixelYA8$fTransparentPixelPixelYA8Word8$fColorPlanePixelYA8PlaneAlpha$fColorPlanePixelYA8PlaneLuma$$fColorConvertiblePixelYA8PixelRGBA8#$fColorConvertiblePixelYA8PixelRGB8$fPixelPixelYA8 $fColorConvertibleFloatPixelRGBF $fPixelFloat $fPixelWord32#$fColorConvertibleWord16PixelRGBA16"$fColorConvertibleWord16PixelRGB16!$fColorConvertibleWord16PixelYA16 $fPixelWord16!$fColorConvertibleWord8PixelRGBA8 $fColorConvertibleWord8PixelRGB8$fColorConvertibleWord8Word16$fColorConvertibleWord8Float$fColorConvertibleWord8PixelYA8 $fPixelWord8!$fLumaPlaneExtractablePixelYCbCr8 $fLumaPlaneExtractablePixelRGBA8$fLumaPlaneExtractablePixelRGBF$fLumaPlaneExtractableFloat$fLumaPlaneExtractableWord32$fLumaPlaneExtractableWord16$fLumaPlaneExtractableWord8$fNFDataDynamicImage$fNFDataMutableImage $fNFDataImage%$fTransparentPixelPixelRGBA8PixelRGB8FoldControl.Applicative ApplicativemedianMeanCutQuantizationuniformQuantizationfold intLengthGHC.ListlengthGHC.NumNumAxisBAxisGAxisRAxisClustervalue meanColordimscolors PackedRGBPairisColorCountBelow vecToPalette listToPalettebitDiv3dither mkPaletteVecinffromRGB8toRGB8meanRGBminimalmaximalextrems volAndDims unpackFold mkClustermaxAxis subdivide rgbIntPack rgbIntUnpack initClustersplitclustersdist2PxnearestColorIdx $fOrdCluster $fEqCluster$fApplicativeFold $fFunctorFold blitVector toByteString BoolReader BoolStatesetDecodedString byteAlignJpgsetDecodedStringJpg writeBits' writeBitsGifBoolWriteStateRef bwsCurrBuffer bwsBufferListbwsWrittenWords bwsBitAcc bwsBitReadedemptyBoolState runBoolReaderrunBoolReaderWithexecBoolReader initBoolStateinitBoolStateJpg getNextBitJpg getNextBitMSBgetNextBitsMSBFirstgetNextBitsLSBFirst getNextBitdefaultBufferSizenewWriteStateReffinalizeBoolWriterforceBufferFlushing'flushCurrentBuffer'byteStringFromVector setBitCount'resetBitCount' pushByte'lzw TiffVariantOldTiffVariant GifVariant.!!!...!!!...<-...<-.. duplicateData rangeSetter decodeLzw isOldTiffLZW decodeLzwTiffTrieNode trieIndextrieSubTrie emptyNode initialTrie lookupUpdate lzwEncode DctComponent MacroBlock HuffmanTreeEmptyLeafBranchmakeMacroBlockbuildHuffmanTreedefaultDcLumaHuffmanTabledefaultDcChromaHuffmanTabledefaultAcLumaHuffmanTable HuffmanTable AcComponent DcComponentQuantificationTableHuffmanWriterCodeHuffmanPackedTreepackHuffmanTreemakeInverseTablescaleQuantisationMatrixhuffmanPackedDecodedefaultLumaQuantizationTabledefaultChromaQuantizationTabledefaultDcLumaHuffmanTreedefaultDcChromaHuffmanTreedefaultAcLumaHuffmanTreedefaultAcChromaHuffmanTreedefaultAcChromaHuffmanTablehuffmanTableClasshuffmanTableDest TableListquantPrecisionquantDestinationspectralSelectionsuccessiveApproxHighsuccessiveApproxLowdcEntropyCodingTableacEntropyCodingTablehorizontalSamplingFactorverticalSamplingFactor AdobeYCck AdobeYCbCr AdobeUnknownMutableMacroBlock DcCoefficientcreateEmptyMutableMacroBlockRestartInterval JpgImageKindProgressiveDCT BaseLineDCTJpgHuffmanTableSpec huffSizes huffCodesSizeCalculable calculateSizeJpgQuantTableSpec quantTable JpgScanHeader scanLengthscanComponentCountscansJpgScanSpecificationcomponentSelectorJpgImagejpgFrame JpgComponentcomponentIdentifierquantizationTableDestJpgFrameHeaderjpgFrameHeaderLengthjpgSamplePrecision jpgHeightjpgWidthjpgImageComponentCount jpgComponents JpgAdobeApp14_adobeDctVersion _adobeFlag0 _adobeFlag1_adobeTransformAdobeTransform JpgColorSpaceJpgColorSpaceRGBAJpgColorSpaceRGBJpgColorSpaceCMYKJpgColorSpaceYCCKJpgColorSpaceYCCAJpgColorSpaceYAJpgColorSpaceYJpgColorSpaceYCCJpgColorSpaceYCbCrJpgFrameJpgIntervalRestartJpgScans JpgScanBlobJpgHuffmanTable JpgQuantTable JpgExtension JpgAdobeAPP14 JpgAppFrame JpgFrameKindJpgRestartIntervalEndJpgRestartIntervalJpgExtensionSegment JpgAppSegment JpgEndOfImageJpgStartOfScanJpgHuffmanTableMarkerJpgQuantizationTable!JpgDifferentialLosslessArithmetic'JpgDifferentialProgressiveDCTArithmetic&JpgDifferentialSequentialDCTArithmeticJpgLosslessArithmeticJpgProgressiveDCTArithmeticJpgExtendedSequentialArithmeticJpgDifferentialLosslessHuffman$JpgDifferentialProgressiveDCTHuffman#JpgDifferentialSequentialDCTHuffmanJpgLosslessHuffmanJpgProgressiveDCTHuffmanJpgExtendedSequentialDCTHuffmanJpgBaselineDCTHuffman eatUntilCodetakeCurrentFrameputFramecommonMarkerFirstByte checkMarkerextractScanContent parseAdobe14 parseFramesbuildPackedHuffmanTreesecondStartOfFrameByteOfKindput4BitsOfEach get4BitOfEachprintMacroBlockprintPureMacroBlock dctBlockSize$fBinaryJpgScanHeader$fBinaryJpgScanSpecification$fBinaryJpgFrameHeader$fBinaryJpgComponent$fBinaryRestartInterval$fBinaryJpgFrameKind$fBinaryJpgImage$fBinaryJpgHuffmanTableSpec#$fSizeCalculableJpgHuffmanTableSpec$fBinaryJpgQuantTableSpec!$fSizeCalculableJpgQuantTableSpec$fBinaryTableList$fSizeCalculableJpgScanHeader$$fSizeCalculableJpgScanSpecification$fSizeCalculableJpgComponent$fSizeCalculableJpgFrameHeader$fBinaryJpgAdobeApp14$fBinaryAdobeTransform referenceDctfastDctLibJpeg cONST_BITS pASS1_BITSfIX_0_298631336fIX_0_390180644fIX_0_541196100fIX_0_765366865fIX_0_899976223fIX_1_175875602fIX_1_501321110fIX_1_847759065fIX_1_961570560fIX_2_053119869fIX_2_562915447fIX_3_072711026 cENTERJSAMPLEfastIdctmutableLevelShift IDctStagex0x1x2x3x4x5x6x7x8iclipw1w2w3w5w6w7idctRowidctColPngInterlaceMethodPngInterlaceAdam7PngNoInterlace PngFilter FilterPaeth FilterAverageFilterUp FilterSub FilterNone PngLowLevelpngImage pngChunksPngChunk pngChunkDatapngChunkSignature PngRawChunk PngPalette PngRawImage PngImageTypeframeSequenceNum frameWidth frameHeight APngBlendOp APngBlendOverAPngBlendSourceAPngFrameDisposalAPngDisposePreviousAPngDisposeBackgroundAPngDisposeNonePngIHdrwidthheightbitDepth colourTypecompressionMethod filterMethodinterlaceMethodChunkSignature parsePalette parseChunksparseRawPngImage pngSignature signature iHDRSignature pLTESignature iDATSignature iENDSignature pngCrcTable pngComputeCrc chunkLength chunkTypechunkCRC chunkDataheaderchunksPngTrueColourWithAlphaPngGreyscaleWithAlphaPngIndexedColor PngTrueColour PngGreyscaleAPngFrameControl frameLeftframeTopframeDelayNumeratorframeDelayDenuminator frameDisposal frameBlendingAPngAnimationControlanimationFrameCountanimationPlayCount tRNSSignaturegammaSignatureanimationControlSignatureimageTypeOfCode$fBinaryPngImageType$fBinaryPngInterlaceMethod$fBinaryPngIHdr$fBinaryPngRawChunk$fBinaryPngRawImage$fBinaryPngFilterpreparePngHeaderendChunkprepareIDatChunkgenericEncode16BitsPngpreparePalettegenericEncodePng$fPngSavablePixelRGBA16$fPngSavablePixelRGB16$fPngSavableWord16$fPngSavablePixelYA16$fPngSavablePixelYA8$fPngSavableWord8$fPngSavablePixelRGB8$fPngSavablePixelRGBA8DctCoefficients deQuantize unpackIntunpackMacroBlockdecodeMacroBlockJpgUnpackerParameter dcHuffmanTree acHuffmanTreecomponentIndexrestartIntervalcomponentWidthcomponentHeight subSamplingcoefficientRangesuccessiveApprox readerIndex indiceVector blockIndex blockMcuX blockMcuYdecodeRestartInterval decodeIntdecodeRrrrSsssdcCoefficientDecodeinverseDirectCosineTransform zigZagOrderzigZagReorderForwardvzigZagOrderForwardzigZagReorderForward zigZagReorder rasterMappackInt pixelClamp ComponentDatacomponentIndicescomponentBlocks componentIdcomponentBlockCountUnpackercreateMcuLineIndices decodeFirstDCdecodeRefineDc decodeFirstAcdecodeRefineAcprepareUnpackerprogressiveUnpacktgaDataOfImagetgaPixelDepthOfImagetgaTypeOfImageTGAPixelUnpackedpackedByteSize tgaUnpackDepth32Depth24Depth15Depth8TgaFile_tgaFileHeader _tgaFileId _tgaPalette _tgaFileRest TgaHeader_tgaHdrIdLength_tgaHdrColorMapType_tgaHdrImageType_tgaHdrMapStart_tgaHdrMapLength_tgaHdrMapDepth_tgaHdrXOffset_tgaHdrYOffset _tgaHdrWidth _tgaHdrHeight_tgaHdrPixelDepth_tgaHdrImageDescriptionTgaImageDescription _tgaIdXOrigin _tgaIdYOrigin_tgaIdAttributeBits TgaImageTypeImageTypeMonochromeImageTypeTrueColorImageTypeColorMappedImageTypeNoDataTgaColorMapTypeColorMapUnknownColorMapWithTableColorMapWithoutTable isRleEncodedcodeOfImageType getPalette applyPaletteunparsewriteRuncopyDataunpackUncompressedTga isRleChunk runLength unpackRLETga flipImage validateTga$fTgaSaveablePixelRGBA8$fTgaSaveablePixelRGB8$fTgaSaveableWord8$fTGAPixelDepth32$fTGAPixelDepth24$fTGAPixelDepth15$fTGAPixelDepth8$fBinaryTgaFile$fBinaryTgaHeader$fBinaryTgaImageDescription$fBinaryTgaImageType$fBinaryTgaColorMapTypeallocTempBuffer TiffCIELab TiffYCbCrTiffCMYKTiffTransparencyMask TiffPaletedTiffRGBTiffMonochromeTiffMonochromeWhite0ExtraSampleUnassociatedAlphaExtraSampleAssociatedAlphaExtraSampleUnspecifiedTagSampleFormatTagPlanarConfigurationTagSamplesPerPixel TagColorMapTagStripOffsetsTagStripByteCountsTagRowPerStripTagYResolutionTagXResolutionTagImageLength TagImageWidthTagCompression BinaryParam orderIfdByTagsetupIfdOffsetsunpack$fUnpackableWord8colorSpaceOfPixelextraSampleCodeOfPixelsubSamplingInfoYCbCrSubsampling ycbcrWidth ycbcrHeightycbcrImageWidthycbcrStripHeightPack12Pack2Pack4 Unpackable StorageTypeoutAlloc offsetStridemergeBackTempBufferTiffColorspaceTiffInfo tiffHeader tiffWidth tiffHeighttiffColorspacetiffSampleCounttiffRowPerStriptiffPlaneConfigurationtiffSampleFormattiffBitsPerSampletiffCompression tiffStripSize tiffOffsets tiffPalettetiffYCbCrSubsamplingtiffExtraSample ExtraSampleImageFileDirectory ifdIdentifierifdTypeifdCount ifdOffset ifdExtendedTiffSampleFormatTiffSampleUnknownTiffSampleDouble TiffSampleIntTiffSampleUintExtendedDirectoryDataExtendedDataLongExtendedDataShortExtendedDataAsciiExtendedDataNoneTiffTag TagUnknownTagJPEGACTablesTagJPEGDCTablesTagJPEGQTablesTagJPEGPointTransformsTagJPEGLosslessPredictorsTagJPEGRestartIntervalTagJPEGInterchangeFormatLengthTagJPEGInterchangeFormat TagJpegProcTagImageDescriptionTagExtraSample TagYPosition TagXPositionTagReferenceBlackWhiteTagYCbCrPositioningTagYCbCrSubsampling TagYCbCrCoeff TagFillOrderTagSubfileType TagInkSetTagOrientation TagSoftwareTagDocumentName TagArtistTagTileByteCount TagTileOffset TagTileLength TagTileWidthTagBitsPerSampleTagResolutionUnitTagPhotometricInterpretationIfdType TypeDouble TypeFloatTypeSignedRationalTypeSignedLongTypeSignedShort TypeUndefined TypeSByte TypeRationalTypeLong TypeShort TypeAsciiTypeByteTiffCompressionCompressionPackBitCompressionJPEGCompressionLZWCompressionModifiedRLECompressionNoneTiffPlanarConfigurationPlanarConfigSeparatePlanarConfigContig TiffHeader hdrEndianness hdrOffsetgetPputP Endianness EndianBig EndianLittleplanarConfgOfConstantconstantToPlaneConfiguration tagOfWord16 word16OfTagunpackSampleFormatunLongcleanImageFileDirectory fetchExtendedfindIFD findPalette findIFDDatafindIFDDefaultData findIFDExtfindIFDExtDefaultDatacodeOfExtraSamplepackPhotometricInterpretationunpackPhotometricInterpretationunPackCompressionpackCompressioncopyByteString unpackPackBit uncompressAt gatherStrips ifdSingleLongifdSingleShort ifdMultiLong ifdMultiShort$fTiffSaveablePixelYCbCr8$fTiffSaveablePixelRGBA16$fTiffSaveablePixelRGBA8$fTiffSaveablePixelRGB16$fTiffSaveablePixelRGB8$fTiffSaveablePixelCMYK16$fTiffSaveablePixelCMYK8$fTiffSaveablePixelYA16$fTiffSaveablePixelYA8$fTiffSaveableWord16$fTiffSaveableWord8$fBinaryParamByteStringTiffInfo$fUnpackableYCbCrSubsampling$fUnpackablePack12$fUnpackablePack2$fUnpackablePack4$fUnpackableWord32$fUnpackableWord16$fBinaryParamEndianness[])$fBinaryParamEndiannessImageFileDirectory%$fBinaryParam(,)ExtendedDirectoryData$fBinaryParamEndiannessTiffTag$fBinaryParamEndiannessIfdType$fBinaryTiffHeader$fBinaryParamEndiannessWord32$fBinaryParamEndiannessWord16$fBinaryEndiannessRadianceHeader radianceInfosradianceFormatradianceHeight radianceWidth radianceDataRadianceFormat FormatXYZE FormatRGBERGBE HDRReaderExceptTthrowE runExceptT.<<..>>.checkLineLengthisNewRunLengthMarkerradiance32bitRleRGBEFormatradiance32bitRleXYZEFromattoRGBE dropUntilgetUntilradianceFileSignature unpackColor storeColor parsePair decodeInfosgetChar8isSign isAxisLetter decodeNum copyPrevColor oldStyleRLE newStyleRLE decodeHeadertoFloatencodeScanlineColordecodeRadiancePicture$fBinaryRadianceHeader$fBinaryRadianceFormat $fBinaryRGBEgceDisposalMethodImageDescriptorLogicalScreenDescriptor screenWidth screenHeightbackgroundIndex hasGlobalMapcolorResolutionisColorTableSortedcolorTableSizeGifFile gifHeader gifImagesgifLoopingBehaviour GifHeader gifVersiongifScreenDescriptor gifGlobalMapBlockBlockGraphicControl BlockImageGifImage imgDescriptorimgLocalPaletteimgLzwRootSizeimgDataGraphicControlExtensiongceUserInputFlaggceTransparentFlaggceDelaygceTransparentColorIndexDisposalMethodDisposalUnknownDisposalRestorePreviousDisposalRestoreBackground DisposalDoNot DisposalAnygDescPixelsFromLeftgDescPixelsFromTopgDescImageWidthgDescImageHeightgDescHasLocalMapgDescIsInterlacedgDescIsImgDescriptorSortedgDescLocalColorTableSize GifVersionGIF89aGIF87agif87aSignaturegif89aSignatureimageSeparatorextensionIntroducer gifTrailerplainTextLabelgraphicControlLabel commentLabelapplicationLabelparseDataBlocks putDataBlocksdisposalMethodOfCodecodeOfDisposalMethodskipSubDataBlocksparseGifBlocks putPalette putLoopingassociateDescrsubstituteColors substituteColorsWithTransparencydeinterlaceGifImagegifInterlacingIndices paletteOfgetFrameDelaystransparentColorOfhasTransparencydecodeAllGifImagesgifAnimationApplyerdecodeFirstGifImagecheckGifImageSizescheckPaletteValidityareIndexAbsentFromPalettecomputeMinimumLzwKeySize$fBinaryGifFile$fBinaryGifHeader$fBinaryImageDescriptor$fBinaryGifImage$fBinaryGraphicControlExtension$fBinaryLogicalScreenDescriptor$fBinaryGifVersionPngLineAdam7MatrixInfoadam7MatrixInfo pngFiltering byteUnpacker bitUnpackertwoBitsUnpackerscanlineUnpacker8 adam7Unpack deinterlacer BeginOffset StrideInfo LineUnpackeradam7StartingRowadam7StartingColadam7RowIncrementadam7ColIncrementadam7BlockHeightadam7BlockWidthunparsePngFilter getBoundshalfByteUnpacker shortUnpackerbyteSizeOfBitLengthscanLineInterleavinggenerateGreyscalePalettesampleCountOfImageType paletteRGB1 paletteRGB2 paletteRGB4boundsapplyPaletteWithTransparencytoImagepalette8acCoefficientsDecodedecompressMacroBlockjpgMachineStepJpgDecoderStatedcDecoderTablesacDecoderTablesquantizationMatricescurrentRestartInterv currentFrame app14MarkercomponentIndexMapping isProgressivemaximumHorizontalResolutionmaximumVerticalResolution seenBlobs JpgScripterquantizepowerOf encodeInt unpack444Yunpack444Ycbcrunpack421YcbcremptyDecoderStateunpackerDecisiongatherImageKindgatherScanInfodynamicOfColorSpacecolorSpaceOfAdobecolorSpaceOfStatecolorSpaceOfComponentStr extractBlockserializeMacroBlockencodeMacroBlock divUpwardprepareHuffmanTabledefaultHuffmanTables xResolution yResolutionfileSizeencodeBitmapWithPalette bitsPerPixel bmpEncodedefaultPalette BmpPalette BmpInfoHeadersizeplanes bitPerPixelbitmapCompression byteImageSize colorCountimportantColours BmpHeadermagicIdentifier reserved1 reserved2 dataOffsetbitmapMagicIdentifiersizeofBmpHeader sizeofBmpInfo stridePutdecodeImageRGB8 decodeImageY8pixelGet linePadding$fBmpEncodablePixelRGB8$fBmpEncodablePixelRGBA8$fBmpEncodableWord8$fBinaryBmpInfoHeader$fBinaryBmpHeadercomponentToLDR toStandardDefgreyScaleToStandardDef from16to8 from16toFloat eitherLoadwithImageDecoder