module Main where
import Codec.Picture (DynamicImage (..), readImage,
writePng)
import Codec.Picture.RGBA8 (fromDynamicImage)
import Data.Time (diffUTCTime, getCurrentTime)
import Vision.Image.Transform.ScaleDCT (scale)
import Vision.Image.JuicyPixels
main :: IO ()
main = do
start <- getCurrentTime
Right dimg <- readImage "phadej.png"
let img = fromDynamicImage dimg
let avasmall = scale (64, 64) (toFridayRGBA img)
let avalarge = scale (600, 600) (toFridayRGBA img)
let avahuge = scale (1200, 1200) (toFridayRGBA img)
writePng "bio-small.png" (toJuicyRGBA avasmall)
writePng "bio-large.png" (toJuicyRGBA avalarge)
writePng "bio-huge.png" (toJuicyRGBA avahuge)
end <- getCurrentTime
print $ end `diffUTCTime` start
showType :: DynamicImage -> String
showType dimg = case dimg of
ImageY8 _ -> "ImageY8"
ImageY16 _ -> "ImageY16"
ImageYF _ -> "ImageYF"
ImageYA8 _ -> "ImageYA8"
ImageYA16 _ -> "ImageYA16"
ImageRGB8 _ -> "ImageRGB8"
ImageRGB16 _ -> "ImageRGB16"
ImageRGBF _ -> "ImageRGBF"
ImageRGBA8 _ -> "ImageRGBA8"
ImageRGBA16 _ -> "ImageRGBA16"
ImageYCbCr8 _ -> "ImageYCbCr8"
ImageCMYK8 _ -> "ImageCMYK8"
ImageCMYK16 _ -> "ImageCMYK16"