aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYann Herklotz Grave <git@yannherklotzgrave.com>2019-02-20 17:02:59 +0000
committerYann Herklotz Grave <git@yannherklotzgrave.com>2019-02-20 17:02:59 +0000
commit8f5147d0bf8fefff89d880288053b2d1b13de849 (patch)
tree9d462f48dcb2802fe9f74014fe1b26c2ccf0b31e
parent733de0cfaac119c0e1a309014a1da4a3aeaad01d (diff)
downloadpfm-8f5147d0bf8fefff89d880288053b2d1b13de849.tar.gz
pfm-8f5147d0bf8fefff89d880288053b2d1b13de849.zip
Add helper functions
-rw-r--r--src/PFM.hs23
1 files changed, 16 insertions, 7 deletions
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)