| Copyright | [2016] Trevor L. McDonell |
|---|---|
| License | BSD3 |
| Maintainer | Trevor L. McDonell <tmcdonell@cse.unsw.edu.au> |
| Stability | experimental |
| Portability | non-portable (GHC extensions) |
| Safe Haskell | None |
| Language | Haskell2010 |
Data.Array.Accelerate.Data.Colour.RGB
Description
RGB triples for an unspecified colour space
- type Colour = RGB Float
- data RGB a = RGB a a a
- rgb :: Exp Float -> Exp Float -> Exp Float -> Exp Colour
- rgb8 :: Exp Word8 -> Exp Word8 -> Exp Word8 -> Exp Colour
- clamp :: Exp Colour -> Exp Colour
- blend :: Exp Float -> Exp Float -> Exp Colour -> Exp Colour -> Exp Colour
- luminance :: Exp Colour -> Exp Float
- packRGB :: Exp Colour -> Exp Word32
- packBGR :: Exp Colour -> Exp Word32
- unpackRGB :: Exp Word32 -> Exp Colour
- unpackBGR :: Exp Word32 -> Exp Colour
- packRGB8 :: Exp (RGB Word8) -> Exp Word32
- packBGR8 :: Exp (RGB Word8) -> Exp Word32
- unpackRGB8 :: Exp Word32 -> Exp (RGB Word8)
- unpackBGR8 :: Exp Word32 -> Exp (RGB Word8)
Documentation
Constructors
| RGB a a a |
Instances
| Functor RGB Source # | |
| Elt a => IsProduct Elt (RGB a) Source # | |
| (Lift Exp a, Elt (Plain a)) => Lift Exp (RGB a) Source # | |
| Elt a => Unlift Exp (RGB (Exp a)) Source # | |
| Eq a => Eq (RGB a) Source # | |
| Fractional a => Fractional (Exp (RGB a)) Source # | |
| (Num a, Fractional a) => Fractional (RGB a) Source # | |
| Num a => Num (Exp (RGB a)) Source # | |
| Num a => Num (RGB a) Source # | |
| Show a => Show (RGB a) Source # | |
| Elt a => Elt (RGB a) Source # | |
| NamedColour (RGB Float) Source # | |
| NamedColour (RGB Word8) Source # | |
| type EltRepr (RGB a) Source # | |
| type ProdRepr (RGB a) Source # | |
| type Plain (RGB a) Source # | |
Arguments
| :: Exp Float | red component |
| -> Exp Float | green component |
| -> Exp Float | blue component |
| -> Exp Colour |
Construct an RGB colour from individual channel components. The components will be clamped to the range [0..1].
Arguments
| :: Exp Word8 | red component |
| -> Exp Word8 | green component |
| -> Exp Word8 | blue component |
| -> Exp Colour |
Construct a colour from 8-bit-per-channel colour components.
Arguments
| :: Exp Float | Proportion of first colour |
| -> Exp Float | Proportion of second colour |
| -> Exp Colour | First colour |
| -> Exp Colour | Second colour |
| -> Exp Colour | Resulting colour |
Blend two colours in the given proportions.
Note that this uses an approximation of gamma=2 (i.e. sum-of-squares method). It is recommended to instead convert to the sRGB colour space if you want more accurate colour blending, or if you intend to use the gamma-corrected values more than once (e.g. in a stencil).
blend c1 c2 ~= SRGB.toRGB ( (SRGB.fromRGB c1 + SRGB.fromRGB c2) / 2 )
See the Blur program in the examples for a comparison of mixing colours in the RGB and sRGB colour spaces.
luminance :: Exp Colour -> Exp Float Source #
Luminance of an RGB colour (Y component of a YUV colour).
unpackRGB :: Exp Word32 -> Exp Colour Source #
Convert a colour from a packed-word RGBA representation