packages feed

Imlib-0.1: examples/value2alpha.hs

import Graphics.Imlib
import Data.Bits
import System 

valueToAlpha (ImlibColor a r g b) = ImlibColor a' r g b
    where a' = round ((r' + g' + b') / 3)
          r' = fromIntegral r
          g' = fromIntegral g
          b' = fromIntegral b

usage = do 
    putStrLn "value2alpha infile outfile"
    exitFailure

main = do
    args <- getArgs
    if (length args /= 2) then usage else return ()
    let [file,newfile] = args
    image <- loadImage file
    contextSetImage image
    imageSetFormat "png"
    withImage (\w h xs -> map valueToAlpha xs)
    imageSetHasAlpha True
    saveImage newfile