hakyll-images-0.2.0: Hakyll utilities to work with images

Copyright(c) Laurent P René de Cotret 2019
LicenseBSD3
Maintainerlaurent.decotret@outlook.com
Stabilitystable
Portabilityportable
Safe HaskellNone
LanguageHaskell2010

Hakyll.Images.Resize

Description

This module defines two Hakyll compilers. The first one, resizeImageCompiler, is used to resize images to specific dimensions. The aspect ratio might not be the same.

The other compiler, scaleImageCompiler, scales images to fit within a specified box while preserving aspect ratio.

    import Hakyll
    import Hakyll.Images        ( resizeImageCompiler 
                                , scaleImageCompiler
                                )
    
    hakyll $ do

        -- Resize all profile pictures with .png extensions to 64x48
        match "profiles/**.png" $ do
            route idRoute
            compile $ loadImage
                >>= resizeImageCompiler 64 48
        
        -- Scale images to fit within a 600x400 box
        match "images/**" $ do
            route idRoute
            compile $ loadImage
                >>= scaleImageCompiler 600 400
        
        (... omitted ...)
Synopsis

Documentation

type Width = Int Source #

resize :: Width -> Height -> DynamicImage -> DynamicImage Source #

Resize an image to specified width and height using the bilinear transform. The aspect ratio may not be respected.

In the process, an image is converted to RGBA8. Therefore, some information loss may occur.

resizeImageCompiler :: Width -> Height -> Item Image -> Compiler (Item Image) Source #

Compiler that resizes images to a specific dimensions. Aspect ratio may not be preserved.

match "*.png" $ do
    route idRoute
    compile $ loadImage 
        >>= resizeImageCompiler 48 64

scale :: Width -> Height -> DynamicImage -> DynamicImage Source #

Scale an image to a size that will fit in the specified width and height, while preserving aspect ratio.

In the process, an image is converted to RGBA8. Therefore, some information loss may occur.

scaleImageCompiler :: Width -> Height -> Item Image -> Compiler (Item Image) Source #

Compiler that rescales images to fit within dimensions. Aspect ratio will be preserved.

match "*.tiff" $ do
    route idRoute
    compile $ loadImage 
        >>= scaleImageCompiler 48 64