diff options
author | Yann Herklotz Grave <git@yannherklotzgrave.com> | 2019-02-20 17:02:59 +0000 |
---|---|---|
committer | Yann Herklotz Grave <git@yannherklotzgrave.com> | 2019-02-20 17:02:59 +0000 |
commit | 8f5147d0bf8fefff89d880288053b2d1b13de849 (patch) | |
tree | 9d462f48dcb2802fe9f74014fe1b26c2ccf0b31e /src | |
parent | 733de0cfaac119c0e1a309014a1da4a3aeaad01d (diff) | |
download | pfm-8f5147d0bf8fefff89d880288053b2d1b13de849.tar.gz pfm-8f5147d0bf8fefff89d880288053b2d1b13de849.zip |
Add helper functions
Diffstat (limited to 'src')
-rw-r--r-- | src/PFM.hs | 23 |
1 files changed, 16 insertions, 7 deletions
@@ -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) |