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

Safe Haskell | None
Language | Haskell2010

Codec.Picture.Jpg

Description

Module used for JPEG file loading and writing.

Synopsis

- decodeJpeg :: ByteString -> Either String DynamicImage
- decodeJpegWithMetadata :: ByteString -> Either String (DynamicImage, Metadatas)
- encodeJpegAtQuality :: Word8 -> Image PixelYCbCr8 -> ByteString
- encodeJpegAtQualityWithMetadata :: Word8 -> Metadatas -> Image PixelYCbCr8 -> ByteString
- encodeJpeg :: Image PixelYCbCr8 -> ByteString

# Documentation

decodeJpeg :: ByteString -> Either String DynamicImage Source

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 `convertImage` from the `ColorSpaceConvertible` typeclass.

This function can output the following pixel types :

- PixelY8
- PixelYA8
- PixelRGB8
- PixelYCbCr8

decodeJpegWithMetadata :: ByteString -> Either String (DynamicImage, Metadatas) Source

Equivalent to `decodeJpeg` but also extracts metadatas.

Extract the following metadatas from the JFIF bloc:

- DpiX
- DpiY

Exif metadata are also extracted if present.

encodeJpegAtQuality Source

Arguments

:: Word8 | Quality factor
-> Image PixelYCbCr8 | Image to encode
-> ByteString | Encoded JPEG

Function to call to encode an image to jpeg. The quality factor should be between 0 and 100 (100 being the best quality).

encodeJpegAtQualityWithMetadata Source

Arguments

:: Word8 | Quality factor
-> Metadatas |
-> Image PixelYCbCr8 | Image to encode
-> ByteString | Encoded JPEG

Equivalent to `encodeJpegAtQuality`, but will store the following metadatas in the file using a JFIF block:

- `DpiX`
- `DpiY`

encodeJpeg :: Image PixelYCbCr8 -> ByteString Source

Encode an image in jpeg at a reasonnable quality level. If you want better quality or reduced file size, you should use `encodeJpegAtQuality`