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

Safe HaskellNone



Module implementing TIFF decoding.

Supported compression schemes:

  • Uncompressed
  • PackBits
  • LZW

Supported bit depth:

  • 2 bits
  • 4 bits
  • 8 bits
  • 16 bits



decodeTiff :: ByteString -> Either String DynamicImage #

Decode a tiff encoded image while preserving the underlying pixel type (except for Y32 which is truncated to 16 bits).

This function can output the following images:

decodeTiffWithMetadata :: ByteString -> Either String (DynamicImage, Metadatas) #

Like decodeTiff but also provides some metdata present in the Tiff file.

The metadata extracted are the DpiX & DpiY information alongside the EXIF informations.

decodeTiffWithPaletteAndMetadata :: ByteString -> Either String (PalettedImage, Metadatas) #

Decode TIFF and provide separated palette and metadata

class Pixel px => TiffSaveable px #

Class defining which pixel types can be serialized in a Tiff file.

Minimal complete definition



TiffSaveable PixelRGBA16 # 
TiffSaveable PixelRGBA8 # 
TiffSaveable PixelCMYK16 # 
TiffSaveable PixelCMYK8 # 
TiffSaveable PixelYCbCr8 # 
TiffSaveable PixelRGB16 # 
TiffSaveable PixelRGB8 # 
TiffSaveable PixelYA16 # 
TiffSaveable PixelYA8 # 
TiffSaveable Pixel16 # 
TiffSaveable Pixel8 # 

encodeTiff :: forall px. TiffSaveable px => Image px -> ByteString #

Transform an image into a Tiff encoded bytestring, ready to be written as a file.

writeTiff :: TiffSaveable pixel => FilePath -> Image pixel -> IO () #

Helper function to directly write an image as a tiff on disk.