Hakyll utilities to work with images.
hakyll-images is an add-on to the hakyll package. It adds utilities to work with images, including JPEG compression.
hakyll-images
A Haskell package containing utilities to deal with images in the context of Hakyll
Hakyll is a static website compiler library. As one of the benefits of static websites is their small size, this repository aims at providing utilities to work with images in the context of Hakyll. Example usage includes:
- Re-encoding Jpeg images at a lower quality to make them much smaller;
- Re-sizing images to fit within a certain shape;
Usage
hakyll-images
is meant to be integrated within a Hakyll program. Here are some examples within a Hakyll program:
import Hakyll
import Hakyll.Images ( loadImage
, compressJpgCompiler
, resizeImageCompiler
, scaleImageCompiler
)
(...)
hakyll $ do
-- Compress all source Jpegs to a Jpeg quality of 50 (maximum of 100)
match "images/**.jpg" $ do
route idRoute
compile $ loadImage
>>= compressJpgCompiler 50
-- Resize all profile pictures to 64x48
-- Aspect ratio might be mangled
match "profiles/**.jpg" $ do
route idRoute
compile $ loadImage
>>= resizeImageCompiler 64 48
>>= compressJpgCompiler 50
-- Scale images to fit within a 600x400 box
-- Aspect ratio will be preserved
match "images/**.png" $ do
route idRoute
compile $ loadImage
>>= scaleImageCompiler 600 400
(...)
Take a look at the documentation for more usage examples.
If you would like a feature added, consider creating an issue on Github
Installation
From Hackage
hakyll-images
is available on Hackage. Using the cabal-install
tool:
cabal update
cabal install hakyll-images
From source
Building from source can be done using stack
or cabal
:
git clone github.com/LaurentRDC/hakyll-images.git
cd hakyll-images
stack install # Alternatively, `cabal install`
Documentation
The documentation for the latest release is available on the Hackage page.
Support Issues / Feature requests
All support requests (e.g. installation issues, unclear documentation, bugs, etc.) should of filed on Github as an issue
License
This package is made available under the BSD 3-clause license. For more details, see the LICENSE.md.