aboutsummaryrefslogtreecommitdiffstats
path: root/app/Main.hs
blob: d04a3b38748468609f3fe231684f79d9f90b5a28 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
module Main where

import           Criterion
import qualified Data.ByteString      as B
import qualified Data.ByteString.Lazy as BL
import qualified Data.Text            as T
import           Data.Word            (Word8)
import           PFM

clamp :: PFMColour -> PPMColour
clamp (PFMColour ri gi bi) =
  PPMColour (f ri) (f gi) (f bi)
  where
    v s = s * 255.0
    f s = if v s > 255.0 then 255 else fromInteger (round (v s))
clamp _ = undefined

clampImage :: PFMImage -> PPMImage
clampImage (PFMImage w h c) =
  PPMImage w h . reverse $ fmap clamp <$> c

main :: IO ()
main = do
  -- s <- B.readFile "/home/yannherklotz/Imperial/AdvancedGraphics/coursework1/CO417-Assignment1/UrbanProbe/urbanEM_latlong.pfm"
  s <- B.readFile "/home/yannherklotz/Downloads/memorial.pfm"
  BL.writeFile "random.ppm" . encodePPM . clampImage . parse $ s