| Safe Haskell | Safe-Inferred |
|---|
Data.Colour.Word8
Description
This module provides Colour8, which stores linear RGB (red,
green, blue) colour values where each channel is a Word8. It also
provides arithmetic over such colours, and a few predefined
colours.
It is the general intention that "most" work will be done with
Data.Colour.Double, with values converted to Colour8 only as a
final step. However, full arithmetic is supported anyway, in case
anybody wants to work that way. It is slightly less efficient and
flexible, however.
Beware that "most" RGB data found in external sources is in the (non-linear) sRGB colour space, not the linear RGB colour space used here. See Data.Colour.Nonlinear for conversion functions.
- data Colour8 = Colour8 {}
- c8map :: (Word8 -> Word8) -> Colour8 -> Colour8
- c8zip :: (Word8 -> Word8 -> Word8) -> Colour8 -> Colour8 -> Colour8
- c8fold :: (Word8 -> Word8 -> Word8) -> Colour8 -> Word8
- grey8 :: Word8 -> Colour8
- c8scale :: Word8 -> Colour8 -> Colour8
- unpack8 :: Colour8 -> (Word8, Word8, Word8)
- pack8 :: (Word8, Word8, Word8) -> Colour8
- c8Black :: Colour8
- c8Red :: Colour8
- c8Yellow :: Colour8
- c8Green :: Colour8
- c8Cyan :: Colour8
- c8Blue :: Colour8
- c8Magenta :: Colour8
- c8White :: Colour8
Documentation
The integral colour. It stores three channels (red, green and
blue) as linear Word8 values ranging from 0 to 255. (0 represents
minimum intensity, 255 represents maximum. Black is therefore
Colour8 0 0 0 and white is Colour8 255 255 255.)
The channel values are stored as strict, unboxed fields, so
operating on Colour8s should be quite efficient in time and
space.
The Num and Fractional instances provide arithmetic for
Colour8s. Note that (*) acts channel-wise; this is usually what
is wanted.
c8map :: (Word8 -> Word8) -> Colour8 -> Colour8Source
Apply a function to every channel of a Colour8. (Mostly used
internally; exposed here in case it might be useful.)
c8zip :: (Word8 -> Word8 -> Word8) -> Colour8 -> Colour8 -> Colour8Source
The colour equivilent of zipWith. (Mostly used
internally; exposed here in case it might be useful.)
c8fold :: (Word8 -> Word8 -> Word8) -> Colour8 -> Word8Source
Use a function to fold the three values in a Colour8 into
a single value. No particular order of application is promised.