packages feed

avatar-generator-0.1.0.0: src/AvatarGenerator.hs

module AvatarGenerator where

-- JuicyPixel
import Data.Word
import Codec.Picture

-- To transform images
import ImageManipulation

avatarGenerator :: [Bool] -> (Word8, Word8, Word8) -> String -> IO ()
avatarGenerator vals (r,g,b) path = writePng path $
         generateImage bigImage desiredWidth desiredHeight

   where bigImage :: Img PixelRGBA8
         bigImage = scale desiredWidth desiredHeight width height smallImage emptyRGBA8

         smallImage :: Img PixelRGBA8
         smallImage = imageFilter color $ crop width height False avatar
           where color True  = PixelRGBA8 r g b 255
                 color False = emptyRGBA8

         avatar :: Img Bool
         avatar = hMirror width lhsAvatar
           where lhsAvatar x y = vals !! ((y * width) + x) 

         width  = 5
         height = 5

         desiredWidth  = 512
         desiredHeight = 512