JuicyPixels-3.2.5.3: Picture loading/serialization (in png, jpeg, bitmap, gif, tga, tiff and radiance)

Safe HaskellNone
LanguageHaskell2010

Codec.Picture.Gif

Contents

Description

Module implementing GIF decoding.

Synopsis

Reading

decodeGif :: ByteString -> Either String DynamicImage

Transform a raw gif image to an image, witout modifying the pixels. This function can output the following pixel types :

  • PixelRGB8
  • PixelRGBA8

decodeGifWithMetadata :: ByteString -> Either String (DynamicImage, Metadatas)

Transform a raw gif image to an image, witout modifying the pixels. This function can output the following pixel types :

  • PixelRGB8
  • PixelRGBA8

Metadatas include Width & Height information.

decodeGifImages :: ByteString -> Either String [DynamicImage]

Transform a raw gif to a list of images, representing all the images of an animation.

getDelaysGifImages :: ByteString -> Either String [GifDelay]

Extract a list of frame delays from a raw gif.

Writing

type GifDelay = Int

Delay to wait before showing the next Gif image. The delay is expressed in 100th of seconds.

data GifLooping

Help to control the behaviour of GIF animation looping.

Constructors

LoopingNever

The animation will stop once the end is reached

LoopingForever

The animation will restart once the end is reached

LoopingRepeat Word16

The animation will repeat n times before stoping

encodeGifImage :: Image Pixel8 -> ByteString

Encode a greyscale image to a bytestring.

encodeGifImageWithPalette :: Image Pixel8 -> Palette -> Either String ByteString

Encode an image with a given palette. Can return errors if the palette is ill-formed.

  • A palette must have between 1 and 256 colors

encodeGifImages :: GifLooping -> [(Palette, GifDelay, Image Pixel8)] -> Either String ByteString

Encode a gif animation to a bytestring.

  • Every image must have the same size
  • Every palette must have between one and 256 colors.

writeGifImage :: FilePath -> Image Pixel8 -> IO ()

Write a greyscale in a gif file on the disk.

writeGifImageWithPalette :: FilePath -> Image Pixel8 -> Palette -> Either String (IO ())

Write a gif image with a palette to a file.

  • A palette must have between 1 and 256 colors

writeGifImages :: FilePath -> GifLooping -> [(Palette, GifDelay, Image Pixel8)] -> Either String (IO ())

Write a list of images as a gif animation in a file.

  • Every image must have the same size
  • Every palette must have between one and 256 colors.

greyPalette :: Palette

Default palette to produce greyscale images.