From 8f5147d0bf8fefff89d880288053b2d1b13de849 Mon Sep 17 00:00:00 2001 From: Yann Herklotz Grave Date: Wed, 20 Feb 2019 17:02:59 +0000 Subject: Add helper functions --- src/PFM.hs | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) (limited to 'src') diff --git a/src/PFM.hs b/src/PFM.hs index 3ec638e..b21e625 100644 --- a/src/PFM.hs +++ b/src/PFM.hs @@ -17,6 +17,8 @@ module PFM ( PFMImage(..) , parse , encode , encodePPM + , revColour + , gamma , module PFM.Vec) where import Control.Applicative ((<|>)) @@ -49,17 +51,17 @@ data PPMImage = PPMImage { ppmWidth :: Int , ppmColour :: [[PPMColour]] } deriving (Show) -data PFMColour = PFMColour { r :: Float - , g :: Float - , b :: Float +data PFMColour = PFMColour { getR :: Float + , getG :: Float + , getB :: Float } | PFMMono Float deriving (Show) -data PPMColour = PPMColour { rw :: Word8 - , gw :: Word8 - , bw :: Word8 - } +data PPMColour = PPMColour { getRw :: Word8 + , getGw :: Word8 + , getBw :: Word8 + } | PPMMono Word8 deriving (Show) @@ -189,3 +191,10 @@ parse :: ByteString -> PFMImage parse s = case P.parseOnly parser s of Left str -> error str Right i -> i + +revColour :: PFMImage -> PFMImage +revColour (PFMImage w h i) = + PFMImage w h $ reverse i + +gamma :: (Floating a) => a -> a -> a +gamma g m = m ** (1 / g) -- cgit