module Data.Color.Class where
import Data.Profunctor
import Data.Word
import Control.Lens
class HasRGB f where
fromRGB :: RealFrac a => a -> a -> a -> f a
_Red :: RealFrac a => Lens' (f a) a
_Green :: RealFrac a => Lens' (f a) a
_Blue :: RealFrac a => Lens' (f a) a
class HasHSB f where
fromHSB :: RealFrac a => a -> a -> a -> f a
_Hue :: RealFrac a => Lens' (f a) a
_Saturation :: RealFrac a => Lens' (f a) a
_Brightness :: RealFrac a => Lens' (f a) a
class HasAlpha f where
_Alpha :: Lens' (f a) a
_8Bit :: RealFrac a => Iso' a Word8
_8Bit = dimap (floor.(*255)) (fmap ((/255) . fromIntegral))