{-| Module : Hakyll.Images.Metadata Description : Handling image metadata Copyright : (c) Laurent P René de Cotret, 2019 License : BSD3 Maintainer : laurent.decotret@outlook.com Stability : unstable Portability : portable -} module Hakyll.Images.Metadata ( module Codec.Picture.Metadata , imageMetadata , metadata ) where import Codec.Picture (decodeImageWithMetadata) import Codec.Picture.Metadata import Hakyll.Core.Compiler (Compiler) import Hakyll.Core.Item (Item, itemBody) import Hakyll.Images.Common (Image(..)) -- | Extract metadata from an image. This function will throw an -- error in case of a problem. -- -- This function is for testing purposes. metadata :: Image -> Metadatas metadata im = either error snd (decodeImageWithMetadata (image im)) -- | Extract metadata from an image. -- -- @ -- match "*.jpg" $ do -- route idRoute -- compile $ do -- im <- loadImage -- meta <- imageMetadata -- doSomethingWithMetadata meta -- ... -- @ imageMetadata :: Item Image -> Compiler Metadatas imageMetadata = return . metadata . itemBody