hakyll-images-1.1.1: Hakyll utilities to work with images
Copyright(c) Laurent P René de Cotret 2019
LicenseBSD3
Maintainerlaurent.decotret@outlook.com
Stabilityunstable
Portabilityportable
Safe HaskellNone
LanguageHaskell2010

Hakyll.Images.CompressJpg

Description

This module defines a Hakyll compiler, compressJpgCompiler, which can be used to re-encode Jpeg images at a lower quality during website compilation. Original images are left unchanged, but compressed images can be up to 10x smaller.

The compressJpgCompiler is expected to be used like this:

    import Hakyll
    import Hakyll.Images        ( loadImage
                                , compressJpgCompiler
                                )

    hakyll $ do

        -- Compress all source Jpegs to a Jpeg quality of 50
        match "images/**.jpg" $ do
            route idRoute
            compile $ loadImage
                >>= compressJpgCompiler 50

        (... omitted ...)
Synopsis

Documentation

type JpgQuality = Int Source #

Jpeg encoding quality, from 0 (lower quality) to 100 (best quality).

compressJpgCompiler :: JpgQuality -> Item Image -> Compiler (Item Image) Source #

Compiler that compresses a JPG image to a certain quality setting. The quality should be between 0 (lowest quality) and 100 (best quality). An error is raised if the image cannot be decoded.

match "*.jpg" $ do
    route idRoute
    compile $ loadImage
        >>= compressJpgCompiler 50

compressJpg :: JpgQuality -> Image -> Image Source #

Compress a JPG bytestring to a certain quality setting. The quality should be between 0 (lowest quality) and 100 (best quality). An error is raised if the image cannot be decoded, or if the encoding quality is out-of-bounds