Copyright | (c) Alexey Kuleshevich 2018 |
---|---|
License | BSD3 |
Maintainer | Alexey Kuleshevich <lehins@yandex.ru> |
Stability | experimental |
Portability | non-portable |
Safe Haskell | None |
Language | Haskell2010 |
- data family Pixel cs e :: *
- class (Eq cs, Enum cs, Show cs, Bounded cs, Typeable cs, Functor (Pixel cs), Applicative (Pixel cs), Foldable (Pixel cs), Eq (Pixel cs e), Unbox (Components cs e), Storable (Pixel cs e), Elevator e) => ColorSpace cs e where
- type Components cs e
- class (ColorSpace (Opaque cs) e, ColorSpace cs e) => AlphaSpace cs e where
- type Opaque cs
- toPixelY :: ToY cs e => Pixel cs e -> Pixel Y Double
- toPixelYA :: ToYA cs e => Pixel cs e -> Pixel YA Double
- toPixelRGB :: ToRGB cs e => Pixel cs e -> Pixel RGB Double
- toPixelRGBA :: ToRGBA cs e => Pixel cs e -> Pixel RGBA Double
- toPixelHSI :: ToHSI cs e => Pixel cs e -> Pixel HSI Double
- toPixelHSIA :: ToHSIA cs e => Pixel cs e -> Pixel HSIA Double
- toPixelCMYK :: ToCMYK cs e => Pixel cs e -> Pixel CMYK Double
- toPixelCMYKA :: ToCMYKA cs e => Pixel cs e -> Pixel CMYKA Double
- toPixelYCbCr :: ToYCbCr cs e => Pixel cs e -> Pixel YCbCr Double
- toPixelYCbCrA :: ToYCbCrA cs e => Pixel cs e -> Pixel YCbCrA Double
- toPixelBinary :: ColorSpace cs e => Pixel cs e -> Pixel X Bit
- fromPixelBinary :: Pixel X Bit -> Pixel Y Word8
- module Graphics.ColorSpace.Binary
- module Graphics.ColorSpace.Complex
- toPixelsX :: ColorSpace cs e => Pixel cs e -> [Pixel X e]
- fromPixelsX :: ColorSpace cs e => [(cs, Pixel X e)] -> Pixel cs e
- eqTolPx :: (ColorSpace cs e, Ord e) => e -> Pixel cs e -> Pixel cs e -> Bool
- data Y = LumaY
- data YA
- class ColorSpace cs e => ToY cs e where
- class ToY cs e => ToYA cs e where
- data RGB
- data RGBA
- class ColorSpace cs e => ToRGB cs e where
- class ToRGB cs e => ToRGBA cs e where
- data HSI
- data HSIA
- class ColorSpace cs e => ToHSI cs e where
- class ToHSI cs e => ToHSIA cs e where
- data CMYK
- data CMYKA
- class ColorSpace cs e => ToCMYK cs e where
- class ToCMYK cs e => ToCMYKA cs e where
- data YCbCr
- data YCbCrA
- class ColorSpace cs e => ToYCbCr cs e where
- class ToYCbCr cs e => ToYCbCrA cs e where
- data X = X
- class (Eq e, Num e, Typeable e, Unbox e, Storable e) => Elevator e where
- toWord8 :: (Functor (Pixel cs), Elevator e) => Pixel cs e -> Pixel cs Word8
- toWord16 :: (Functor (Pixel cs), Elevator e) => Pixel cs e -> Pixel cs Word16
- toWord32 :: (Functor (Pixel cs), Elevator e) => Pixel cs e -> Pixel cs Word32
- toWord64 :: (Functor (Pixel cs), Elevator e) => Pixel cs e -> Pixel cs Word64
- toFloat :: (Functor (Pixel cs), Elevator e) => Pixel cs e -> Pixel cs Float
- toDouble :: (Functor (Pixel cs), Elevator e) => Pixel cs e -> Pixel cs Double
- fromDouble :: (Functor (Pixel cs), Elevator e) => Pixel cs Double -> Pixel cs e
- data Word8 :: *
- data Word16 :: *
- data Word32 :: *
- data Word64 :: *
Pixels
Family of Pixels
Pixel is a type family for all available color spaces. Below is the listed of all class instances, that pixels are installed in, as well as all pixel constructors.
>>>
:t (PixelY 0) -- Black pixel in Luma
(PixelY 0) :: Num e => Pixel Y e>>>
PixelRGB 255 0 0 :: Pixel RGB Word8 -- Red pixel in RGB
<RGB:(255|0|0)>>>>
PixelRGB 1 0 0 :: Pixel RGB Double -- Same red pixel in RGB with Double precision.
<RGB:(1.0|0.0|0.0)>>>>
(PixelRGB 255 0 0 :: Pixel RGB Word8) == (toWord8 <$> (PixelRGB 1 0 0 :: Pixel RGB Double))
True
data family Pixel cs e :: * Source #
A Pixel family with a color space and a precision of elements.
class (Eq cs, Enum cs, Show cs, Bounded cs, Typeable cs, Functor (Pixel cs), Applicative (Pixel cs), Foldable (Pixel cs), Eq (Pixel cs e), Unbox (Components cs e), Storable (Pixel cs e), Elevator e) => ColorSpace cs e where Source #
type Components cs e Source #
toComponents :: Pixel cs e -> Components cs e Source #
Convert a Pixel to a representation suitable for storage as an unboxed element, usually a tuple of channels.
fromComponents :: Components cs e -> Pixel cs e Source #
Convert from an elemnt representation back to a Pixel.
promote :: e -> Pixel cs e Source #
Deprecated: Use pure
from Applicative
instead
Construt a Pixel by replicating the same value across all of the components.
getPxC :: Pixel cs e -> cs -> e Source #
Retrieve Pixel's component value
setPxC :: Pixel cs e -> cs -> e -> Pixel cs e Source #
Set Pixel's component value
mapPxC :: (cs -> e -> e) -> Pixel cs e -> Pixel cs e Source #
Map a channel aware function over all Pixel's components.
foldlPx2 :: (b -> e -> e -> b) -> b -> Pixel cs e -> Pixel cs e -> b Source #
Left fold on two pixels a the same time. If accumulator is nutrual to the folding funciton
then it's equivalent to foldlPx2 f acc px1 px2 == foldl' acc (liftA2 (f acc) px1 px2)
liftPx :: (e -> e) -> Pixel cs e -> Pixel cs e Source #
liftPx2 :: (e -> e -> e) -> Pixel cs e -> Pixel cs e -> Pixel cs e Source #
Deprecated: Use liftA2
from Applicative
instead
Zip two Pixels with a function.
foldrPx :: (e -> b -> b) -> b -> Pixel cs e -> b Source #
Elevator e => ColorSpace HSIA e Source # | |
Elevator e => ColorSpace HSI e Source # | |
Elevator e => ColorSpace CMYKA e Source # | |
Elevator e => ColorSpace CMYK e Source # | |
Elevator e => ColorSpace RGBA e Source # | |
Elevator e => ColorSpace RGB e Source # | |
Elevator e => ColorSpace X e Source # | |
Elevator e => ColorSpace YA e Source # | |
Elevator e => ColorSpace Y e Source # | |
Elevator e => ColorSpace YCbCrA e Source # | |
Elevator e => ColorSpace YCbCr e Source # | |
class (ColorSpace (Opaque cs) e, ColorSpace cs e) => AlphaSpace cs e where Source #
A color space that supports transparency.
getAlpha :: Pixel cs e -> e Source #
Get an alpha channel of a transparant pixel.
addAlpha :: e -> Pixel (Opaque cs) e -> Pixel cs e Source #
Add an alpha channel to an opaque pixel.
addAlpha 0 (PixelHSI 1 2 3) == PixelHSIA 1 2 3 0
dropAlpha :: Pixel cs e -> Pixel (Opaque cs) e Source #
Convert a transparent pixel to an opaque one by dropping the alpha channel.
dropAlpha (PixelRGBA 1 2 3 4) == PixelRGB 1 2 3
Elevator e => AlphaSpace HSIA e Source # | |
Elevator e => AlphaSpace CMYKA e Source # | |
Elevator e => AlphaSpace RGBA e Source # | |
Elevator e => AlphaSpace YA e Source # | |
Elevator e => AlphaSpace YCbCrA e Source # | |
Luma (gray scale)
Conversion to Luma from other color spaces.
toPixelYA :: ToYA cs e => Pixel cs e -> Pixel YA Double Source #
Convert a pixel to Luma pixel with Alpha.
RGB
Conversion to RGB from other color spaces.
HSI
Conversion to HSI from other color spaces.
CMYK
Conversion to CMYK from other color spaces.
YCbCr
Conversion to YCbCr from other color spaces.
toPixelYCbCrA :: ToYCbCrA cs e => Pixel cs e -> Pixel YCbCrA Double Source #
Convert to an YCbCrA
pixel.
Binary
This is a Binary colorspace, pixel's of which can be created using these constructors:
on
- Represents value
1
orTrue
. It's a foreground pixel and is displayed in black. off
- Represents value
0
orFalse
. It's a background pixel and is displayed in white.
Note, that values are inverted before writing to or reading from file, since
grayscale images represent black as a 0
value and white as 1
on a
[0,1]
scale.
Binary pixels also behave as binary numbers with a size of 1-bit, for instance:
>>>
on + on -- equivalent to: 1 .|. 1
<Binary:(1)>>>>
(on + on) * off -- equivalent to: (1 .|. 1) .&. 0
<Binary:(0)>>>>
(on + on) - on
<Binary:(0)>
toPixelBinary :: ColorSpace cs e => Pixel cs e -> Pixel X Bit Source #
Convert to a Binary
pixel.
module Graphics.ColorSpace.Binary
Complex
module Graphics.ColorSpace.Complex
X
toPixelsX :: ColorSpace cs e => Pixel cs e -> [Pixel X e] Source #
Separate a Pixel into a list of components with X
pixels containing every
component from the pixel.
>>>
toPixelsX (PixelRGB 4 5 6)
[<X:(4)>,<X:(5)>,<X:(6)>]
fromPixelsX :: ColorSpace cs e => [(cs, Pixel X e)] -> Pixel cs e Source #
Combine a list of X
pixels into a Pixel with a specified channel
order. Not the most efficient way to construct a pixel, but might prove
useful to someone.
>>>
fromPixelsX [(RedRGB, 3), (BlueRGB, 5), (GreenRGB, 4)]
<RGB:(3.0|4.0|5.0)>>>>
fromPixelsX $ zip (enumFrom RedRGB) (toPixelsX $ PixelRGB 4 5 6)
<RGB:(4.0|5.0|6.0)>
ColorSpace
Operations on Pixels
Luma
Luma or brightness, which is usually denoted as Y'
.
Bounded Y Source # | |
Enum Y Source # | |
Eq Y Source # | |
Show Y Source # | |
Elevator e => ColorSpace Y e Source # | |
ToYCbCr Y e => ToYCbCrA Y e Source # | |
Elevator e => ToYCbCr Y e Source # | |
ToCMYK Y e => ToCMYKA Y e Source # | |
Elevator e => ToCMYK Y e Source # | |
ToHSI Y e => ToHSIA Y e Source # | |
Elevator e => ToHSI Y e Source # | |
ToRGB Y e => ToRGBA Y e Source # | |
Elevator e => ToRGB Y e Source # | |
ToY Y e => ToYA Y e Source # | |
Elevator e => ToY Y e Source # | |
Monad (Pixel Y) Source # | |
Functor (Pixel Y) Source # | |
Applicative (Pixel Y) Source # | |
Foldable (Pixel Y) Source # | |
Eq e => Eq (Pixel Y e) Source # | |
Ord e => Ord (Pixel Y e) Source # | |
Show e => Show (Pixel Y e) Source # | |
Storable e => Storable (Pixel Y e) Source # | |
data Pixel Y Source # | |
type Components Y e Source # | |
Luma with Alpha channel.
Bounded YA Source # | |
Enum YA Source # | |
Eq YA Source # | |
Show YA Source # | |
Elevator e => AlphaSpace YA e Source # | |
Elevator e => ColorSpace YA e Source # | |
Elevator e => ToYCbCrA YA e Source # | |
Elevator e => ToYCbCr YA e Source # | |
Elevator e => ToCMYKA YA e Source # | |
Elevator e => ToCMYK YA e Source # | |
Elevator e => ToHSIA YA e Source # | |
Elevator e => ToHSI YA e Source # | |
Elevator e => ToRGBA YA e Source # | |
Elevator e => ToRGB YA e Source # | |
Elevator e => ToYA YA e Source # | |
Elevator e => ToY YA e Source # | |
Functor (Pixel YA) Source # | |
Applicative (Pixel YA) Source # | |
Foldable (Pixel YA) Source # | |
Eq e => Eq (Pixel YA e) Source # | |
Ord e => Ord (Pixel YA e) Source # | |
Show e => Show (Pixel YA e) Source # | |
Storable e => Storable (Pixel YA e) Source # | |
type Opaque YA Source # | |
data Pixel YA Source # | |
type Components YA e Source # | |
class ColorSpace cs e => ToY cs e where Source #
Conversion to Luma color space.
Elevator e => ToY HSIA e Source # | |
Elevator e => ToY HSI e Source # | |
Elevator e => ToY CMYKA e Source # | |
Elevator e => ToY CMYK e Source # | |
Elevator e => ToY RGBA e Source # | |
Elevator e => ToY RGB e Source # | Computes Luma: |
Elevator e => ToY X e Source # | |
Elevator e => ToY YA e Source # | |
Elevator e => ToY Y e Source # | |
Elevator e => ToY YCbCrA e Source # | |
Elevator e => ToY YCbCr e Source # | |
class ToY cs e => ToYA cs e where Source #
Conversion to Luma from another color space.
Elevator e => ToYA HSIA e Source # | |
ToY HSI e => ToYA HSI e Source # | |
Elevator e => ToYA CMYKA e Source # | |
ToY CMYK e => ToYA CMYK e Source # | |
Elevator e => ToYA RGBA e Source # | |
ToY RGB e => ToYA RGB e Source # | |
ToYA X Bit Source # | |
Elevator e => ToYA YA e Source # | |
ToY Y e => ToYA Y e Source # | |
Elevator e => ToYA YCbCrA e Source # | |
ToY YCbCr e => ToYA YCbCr e Source # | |
RGB
Red, Green and Blue color space.
Bounded RGB Source # | |
Enum RGB Source # | |
Eq RGB Source # | |
Show RGB Source # | |
Elevator e => ColorSpace RGB e Source # | |
ToYCbCr RGB e => ToYCbCrA RGB e Source # | |
Elevator e => ToYCbCr RGB e Source # | |
ToCMYK RGB e => ToCMYKA RGB e Source # | |
Elevator e => ToCMYK RGB e Source # | |
ToHSI RGB e => ToHSIA RGB e Source # | |
Elevator e => ToHSI RGB e Source # | |
ToRGB RGB e => ToRGBA RGB e Source # | |
Elevator e => ToRGB RGB e Source # | |
ToY RGB e => ToYA RGB e Source # | |
Elevator e => ToY RGB e Source # | Computes Luma: |
Functor (Pixel RGB) Source # | |
Applicative (Pixel RGB) Source # | |
Foldable (Pixel RGB) Source # | |
Eq e => Eq (Pixel RGB e) Source # | |
Ord e => Ord (Pixel RGB e) Source # | |
Show e => Show (Pixel RGB e) Source # | |
Storable e => Storable (Pixel RGB e) Source # | |
data Pixel RGB Source # | |
type Components RGB e Source # | |
Red, Green and Blue color space with Alpha channel.
Bounded RGBA Source # | |
Enum RGBA Source # | |
Eq RGBA Source # | |
Show RGBA Source # | |
Elevator e => AlphaSpace RGBA e Source # | |
Elevator e => ColorSpace RGBA e Source # | |
Elevator e => ToYCbCrA RGBA e Source # | |
Elevator e => ToYCbCr RGBA e Source # | |
Elevator e => ToCMYKA RGBA e Source # | |
Elevator e => ToCMYK RGBA e Source # | |
Elevator e => ToHSIA RGBA e Source # | |
Elevator e => ToHSI RGBA e Source # | |
Elevator e => ToRGBA RGBA e Source # | |
Elevator e => ToRGB RGBA e Source # | |
Elevator e => ToYA RGBA e Source # | |
Elevator e => ToY RGBA e Source # | |
Functor (Pixel RGBA) Source # | |
Applicative (Pixel RGBA) Source # | |
Foldable (Pixel RGBA) Source # | |
Eq e => Eq (Pixel RGBA e) Source # | |
Ord e => Ord (Pixel RGBA e) Source # | |
Show e => Show (Pixel RGBA e) Source # | |
Storable e => Storable (Pixel RGBA e) Source # | |
type Opaque RGBA Source # | |
data Pixel RGBA Source # | |
type Components RGBA e Source # | |
class ColorSpace cs e => ToRGB cs e where Source #
Conversion to RGB
color space.
Elevator e => ToRGB HSIA e Source # | |
Elevator e => ToRGB HSI e Source # | |
Elevator e => ToRGB CMYKA e Source # | |
Elevator e => ToRGB CMYK e Source # | |
Elevator e => ToRGB RGBA e Source # | |
Elevator e => ToRGB RGB e Source # | |
ToRGB X Bit Source # | |
Elevator e => ToRGB YA e Source # | |
Elevator e => ToRGB Y e Source # | |
Elevator e => ToRGB YCbCrA e Source # | |
Elevator e => ToRGB YCbCr e Source # | |
class ToRGB cs e => ToRGBA cs e where Source #
Conversion to RGBA
from another color space with Alpha channel.
Elevator e => ToRGBA HSIA e Source # | |
ToRGB HSI e => ToRGBA HSI e Source # | |
Elevator e => ToRGBA CMYKA e Source # | |
ToRGB CMYK e => ToRGBA CMYK e Source # | |
Elevator e => ToRGBA RGBA e Source # | |
ToRGB RGB e => ToRGBA RGB e Source # | |
ToRGBA X Bit Source # | |
Elevator e => ToRGBA YA e Source # | |
ToRGB Y e => ToRGBA Y e Source # | |
Elevator e => ToRGBA YCbCrA e Source # | |
ToRGB YCbCr e => ToRGBA YCbCr e Source # | |
HSI
Hue, Saturation and Intensity color space.
Bounded HSI Source # | |
Enum HSI Source # | |
Eq HSI Source # | |
Show HSI Source # | |
Elevator e => ColorSpace HSI e Source # | |
ToYCbCr HSI e => ToYCbCrA HSI e Source # | |
Elevator e => ToYCbCr HSI e Source # | |
ToCMYK HSI e => ToCMYKA HSI e Source # | |
Elevator e => ToCMYK HSI e Source # | |
ToHSI HSI e => ToHSIA HSI e Source # | |
Elevator e => ToHSI HSI e Source # | |
ToRGB HSI e => ToRGBA HSI e Source # | |
Elevator e => ToRGB HSI e Source # | |
ToY HSI e => ToYA HSI e Source # | |
Elevator e => ToY HSI e Source # | |
Functor (Pixel HSI) Source # | |
Applicative (Pixel HSI) Source # | |
Foldable (Pixel HSI) Source # | |
Eq e => Eq (Pixel HSI e) Source # | |
Ord e => Ord (Pixel HSI e) Source # | |
Show e => Show (Pixel HSI e) Source # | |
Storable e => Storable (Pixel HSI e) Source # | |
data Pixel HSI Source # | |
type Components HSI e Source # | |
Hue, Saturation and Intensity color space with Alpha channel.
Bounded HSIA Source # | |
Enum HSIA Source # | |
Eq HSIA Source # | |
Show HSIA Source # | |
Elevator e => AlphaSpace HSIA e Source # | |
Elevator e => ColorSpace HSIA e Source # | |
Elevator e => ToYCbCrA HSIA e Source # | |
Elevator e => ToYCbCr HSIA e Source # | |
Elevator e => ToCMYKA HSIA e Source # | |
Elevator e => ToCMYK HSIA e Source # | |
Elevator e => ToHSIA HSIA e Source # | |
Elevator e => ToHSI HSIA e Source # | |
Elevator e => ToRGBA HSIA e Source # | |
Elevator e => ToRGB HSIA e Source # | |
Elevator e => ToYA HSIA e Source # | |
Elevator e => ToY HSIA e Source # | |
Functor (Pixel HSIA) Source # | |
Applicative (Pixel HSIA) Source # | |
Foldable (Pixel HSIA) Source # | |
Eq e => Eq (Pixel HSIA e) Source # | |
Ord e => Ord (Pixel HSIA e) Source # | |
Show e => Show (Pixel HSIA e) Source # | |
Storable e => Storable (Pixel HSIA e) Source # | |
type Opaque HSIA Source # | |
data Pixel HSIA Source # | |
type Components HSIA e Source # | |
class ColorSpace cs e => ToHSI cs e where Source #
Conversion to HSI
color space.
Elevator e => ToHSI HSIA e Source # | |
Elevator e => ToHSI HSI e Source # | |
Elevator e => ToHSI CMYKA e Source # | |
Elevator e => ToHSI CMYK e Source # | |
Elevator e => ToHSI RGBA e Source # | |
Elevator e => ToHSI RGB e Source # | |
Elevator e => ToHSI YA e Source # | |
Elevator e => ToHSI Y e Source # | |
Elevator e => ToHSI YCbCrA e Source # | |
Elevator e => ToHSI YCbCr e Source # | |
class ToHSI cs e => ToHSIA cs e where Source #
Conversion to HSIA
from another color space with Alpha channel.
Elevator e => ToHSIA HSIA e Source # | |
ToHSI HSI e => ToHSIA HSI e Source # | |
Elevator e => ToHSIA CMYKA e Source # | |
ToHSI CMYK e => ToHSIA CMYK e Source # | |
Elevator e => ToHSIA RGBA e Source # | |
ToHSI RGB e => ToHSIA RGB e Source # | |
Elevator e => ToHSIA YA e Source # | |
ToHSI Y e => ToHSIA Y e Source # | |
Elevator e => ToHSIA YCbCrA e Source # | |
ToHSI YCbCr e => ToHSIA YCbCr e Source # | |
CMYK
Cyan, Magenta, Yellow and Black color space.
Bounded CMYK Source # | |
Enum CMYK Source # | |
Eq CMYK Source # | |
Show CMYK Source # | |
Elevator e => ColorSpace CMYK e Source # | |
ToYCbCr CMYK e => ToYCbCrA CMYK e Source # | |
Elevator e => ToYCbCr CMYK e Source # | |
ToCMYK CMYK e => ToCMYKA CMYK e Source # | |
Elevator e => ToCMYK CMYK e Source # | |
ToHSI CMYK e => ToHSIA CMYK e Source # | |
Elevator e => ToHSI CMYK e Source # | |
ToRGB CMYK e => ToRGBA CMYK e Source # | |
Elevator e => ToRGB CMYK e Source # | |
ToY CMYK e => ToYA CMYK e Source # | |
Elevator e => ToY CMYK e Source # | |
Functor (Pixel CMYK) Source # | |
Applicative (Pixel CMYK) Source # | |
Foldable (Pixel CMYK) Source # | |
Eq e => Eq (Pixel CMYK e) Source # | |
Ord e => Ord (Pixel CMYK e) Source # | |
Show e => Show (Pixel CMYK e) Source # | |
Storable e => Storable (Pixel CMYK e) Source # | |
data Pixel CMYK Source # | |
type Components CMYK e Source # | |
Cyan, Magenta, Yellow and Black color space with Alpha channel.
CyanCMYKA | Cyan |
MagCMYKA | Magenta |
YelCMYKA | Yellow |
KeyCMYKA | Key (Black) |
AlphaCMYKA | Alpha |
Bounded CMYKA Source # | |
Enum CMYKA Source # | |
Eq CMYKA Source # | |
Show CMYKA Source # | |
Elevator e => AlphaSpace CMYKA e Source # | |
Elevator e => ColorSpace CMYKA e Source # | |
Elevator e => ToYCbCrA CMYKA e Source # | |
Elevator e => ToYCbCr CMYKA e Source # | |
Elevator e => ToCMYKA CMYKA e Source # | |
Elevator e => ToCMYK CMYKA e Source # | |
Elevator e => ToHSIA CMYKA e Source # | |
Elevator e => ToHSI CMYKA e Source # | |
Elevator e => ToRGBA CMYKA e Source # | |
Elevator e => ToRGB CMYKA e Source # | |
Elevator e => ToYA CMYKA e Source # | |
Elevator e => ToY CMYKA e Source # | |
Functor (Pixel CMYKA) Source # | |
Applicative (Pixel CMYKA) Source # | |
Foldable (Pixel CMYKA) Source # | |
Eq e => Eq (Pixel CMYKA e) Source # | |
Ord e => Ord (Pixel CMYKA e) Source # | |
Show e => Show (Pixel CMYKA e) Source # | |
Storable e => Storable (Pixel CMYKA e) Source # | |
type Opaque CMYKA Source # | |
data Pixel CMYKA Source # | |
type Components CMYKA e Source # | |
class ColorSpace cs e => ToCMYK cs e where Source #
Conversion to CMYK
color space.
Elevator e => ToCMYK HSIA e Source # | |
Elevator e => ToCMYK HSI e Source # | |
Elevator e => ToCMYK CMYKA e Source # | |
Elevator e => ToCMYK CMYK e Source # | |
Elevator e => ToCMYK RGBA e Source # | |
Elevator e => ToCMYK RGB e Source # | |
Elevator e => ToCMYK YA e Source # | |
Elevator e => ToCMYK Y e Source # | |
Elevator e => ToCMYK YCbCrA e Source # | |
Elevator e => ToCMYK YCbCr e Source # | |
class ToCMYK cs e => ToCMYKA cs e where Source #
Conversion to CMYKA
.
Elevator e => ToCMYKA HSIA e Source # | |
ToCMYK HSI e => ToCMYKA HSI e Source # | |
Elevator e => ToCMYKA CMYKA e Source # | |
ToCMYK CMYK e => ToCMYKA CMYK e Source # | |
Elevator e => ToCMYKA RGBA e Source # | |
ToCMYK RGB e => ToCMYKA RGB e Source # | |
Elevator e => ToCMYKA YA e Source # | |
ToCMYK Y e => ToCMYKA Y e Source # | |
Elevator e => ToCMYKA YCbCrA e Source # | |
ToCMYK YCbCr e => ToCMYKA YCbCr e Source # | |
YCbCr
Color space is used to encode RGB information and is used in JPEG compression.
LumaYCbCr | Luma component (commonly denoted as Y') |
CBlueYCbCr | Blue difference chroma component |
CRedYCbCr | Red difference chroma component |
Bounded YCbCr Source # | |
Enum YCbCr Source # | |
Eq YCbCr Source # | |
Show YCbCr Source # | |
Elevator e => ColorSpace YCbCr e Source # | |
ToYCbCr YCbCr e => ToYCbCrA YCbCr e Source # | |
Elevator e => ToYCbCr YCbCr e Source # | |
ToCMYK YCbCr e => ToCMYKA YCbCr e Source # | |
Elevator e => ToCMYK YCbCr e Source # | |
ToHSI YCbCr e => ToHSIA YCbCr e Source # | |
Elevator e => ToHSI YCbCr e Source # | |
ToRGB YCbCr e => ToRGBA YCbCr e Source # | |
Elevator e => ToRGB YCbCr e Source # | |
ToY YCbCr e => ToYA YCbCr e Source # | |
Elevator e => ToY YCbCr e Source # | |
Functor (Pixel YCbCr) Source # | |
Applicative (Pixel YCbCr) Source # | |
Foldable (Pixel YCbCr) Source # | |
Eq e => Eq (Pixel YCbCr e) Source # | |
Ord e => Ord (Pixel YCbCr e) Source # | |
Show e => Show (Pixel YCbCr e) Source # | |
Storable e => Storable (Pixel YCbCr e) Source # | |
data Pixel YCbCr Source # | |
type Components YCbCr e Source # | |
YCbCr color space with Alpha channel.
LumaYCbCrA | Luma component (commonly denoted as Y') |
CBlueYCbCrA | Blue difference chroma component |
CRedYCbCrA | Red difference chroma component |
AlphaYCbCrA | Alpha component. |
Bounded YCbCrA Source # | |
Enum YCbCrA Source # | |
Eq YCbCrA Source # | |
Show YCbCrA Source # | |
Elevator e => AlphaSpace YCbCrA e Source # | |
Elevator e => ColorSpace YCbCrA e Source # | |
Elevator e => ToYCbCrA YCbCrA e Source # | |
Elevator e => ToYCbCr YCbCrA e Source # | |
Elevator e => ToCMYKA YCbCrA e Source # | |
Elevator e => ToCMYK YCbCrA e Source # | |
Elevator e => ToHSIA YCbCrA e Source # | |
Elevator e => ToHSI YCbCrA e Source # | |
Elevator e => ToRGBA YCbCrA e Source # | |
Elevator e => ToRGB YCbCrA e Source # | |
Elevator e => ToYA YCbCrA e Source # | |
Elevator e => ToY YCbCrA e Source # | |
Functor (Pixel YCbCrA) Source # | |
Applicative (Pixel YCbCrA) Source # | |
Foldable (Pixel YCbCrA) Source # | |
Eq e => Eq (Pixel YCbCrA e) Source # | |
Ord e => Ord (Pixel YCbCrA e) Source # | |
Show e => Show (Pixel YCbCrA e) Source # | |
Storable e => Storable (Pixel YCbCrA e) Source # | |
type Opaque YCbCrA Source # | |
data Pixel YCbCrA Source # | |
type Components YCbCrA e Source # | |
class ColorSpace cs e => ToYCbCr cs e where Source #
Conversion to YCbCr
color space.
Elevator e => ToYCbCr HSIA e Source # | |
Elevator e => ToYCbCr HSI e Source # | |
Elevator e => ToYCbCr CMYKA e Source # | |
Elevator e => ToYCbCr CMYK e Source # | |
Elevator e => ToYCbCr RGBA e Source # | |
Elevator e => ToYCbCr RGB e Source # | |
Elevator e => ToYCbCr YA e Source # | |
Elevator e => ToYCbCr Y e Source # | |
Elevator e => ToYCbCr YCbCrA e Source # | |
Elevator e => ToYCbCr YCbCr e Source # | |
class ToYCbCr cs e => ToYCbCrA cs e where Source #
Conversion to YCbCrA
from another color space with Alpha channel.
Elevator e => ToYCbCrA HSIA e Source # | |
ToYCbCr HSI e => ToYCbCrA HSI e Source # | |
Elevator e => ToYCbCrA CMYKA e Source # | |
ToYCbCr CMYK e => ToYCbCrA CMYK e Source # | |
Elevator e => ToYCbCrA RGBA e Source # | |
ToYCbCr RGB e => ToYCbCrA RGB e Source # | |
Elevator e => ToYCbCrA YA e Source # | |
ToYCbCr Y e => ToYCbCrA Y e Source # | |
Elevator e => ToYCbCrA YCbCrA e Source # | |
ToYCbCr YCbCr e => ToYCbCrA YCbCr e Source # | |
X
This is a single channel colorspace, that is designed to separate Gray
level values from other types of colorspace, hence it is not convertible to
or from, but rather is here to allow operation on arbirtary single channel
images. If you are looking for a true grayscale colorspace
Y
should be used instead.
Bounded X Source # | |
Enum X Source # | |
Eq X Source # | |
Show X Source # | |
Elevator e => ColorSpace X e Source # | |
ToRGBA X Bit Source # | |
ToRGB X Bit Source # | |
ToYA X Bit Source # | |
Elevator e => ToY X e Source # | |
Monad (Pixel X) Source # | |
Functor (Pixel X) Source # | |
Applicative (Pixel X) Source # | |
Foldable (Pixel X) Source # | |
Eq e => Eq (Pixel X e) Source # | |
Ord e => Ord (Pixel X e) Source # | |
Show e => Show (Pixel X e) Source # | |
Storable e => Storable (Pixel X e) Source # | |
Bits (Pixel X Bit) # | |
data Pixel X Source # | |
type Components X e Source # | |
Precision
Pixel
class (Eq e, Num e, Typeable e, Unbox e, Storable e) => Elevator e where Source #
A class with a set of convenient functions that allow for changing precision of channels within pixels, while scaling the values to keep them in an appropriate range.
>>>
let rgb = PixelRGB 0.0 0.5 1.0 :: Pixel RGB Double
>>>
eToWord8 <$> rgb
<RGB:(0|128|255)>>>>
eToWord16 <$> rgb
<RGB:(0|32768|65535)>
eToWord8 :: e -> Word8 Source #
Values are scaled to [0, 255]
range.
eToWord16 :: e -> Word16 Source #
Values are scaled to [0, 65535]
range.
eToWord32 :: e -> Word32 Source #
Values are scaled to [0, 4294967295]
range.
eToWord64 :: e -> Word64 Source #
Values are scaled to [0, 18446744073709551615]
range.
eToFloat :: e -> Float Source #
Values are scaled to [0.0, 1.0]
range.
eToDouble :: e -> Double Source #
Values are scaled to [0.0, 1.0]
range.
eFromDouble :: Double -> e Source #
Values are scaled from [0.0, 1.0]
range.
Elevator Double Source # | Values between |
Elevator Float Source # | Values between |
Elevator Int Source # | Values between |
Elevator Int8 Source # | Values between |
Elevator Int16 Source # | Values between |
Elevator Int32 Source # | Values between |
Elevator Int64 Source # | Values between |
Elevator Word Source # | Values between |
Elevator Word8 Source # | Values between |
Elevator Word16 Source # | Values between |
Elevator Word32 Source # | Values between |
Elevator Word64 Source # | Values between |
Elevator Bit Source # | Values: |
(Num e, Elevator e, RealFloat e) => Elevator (Complex e) Source # | Discards imaginary part and changes precision of real part. |
toWord8 :: (Functor (Pixel cs), Elevator e) => Pixel cs e -> Pixel cs Word8 Source #
Change pixel precision to Word8
.
toWord16 :: (Functor (Pixel cs), Elevator e) => Pixel cs e -> Pixel cs Word16 Source #
Change pixel precision to Word16
.
toWord32 :: (Functor (Pixel cs), Elevator e) => Pixel cs e -> Pixel cs Word32 Source #
Change pixel precision to Word32
.
toWord64 :: (Functor (Pixel cs), Elevator e) => Pixel cs e -> Pixel cs Word64 Source #
Change pixel precision to Word64
.
toFloat :: (Functor (Pixel cs), Elevator e) => Pixel cs e -> Pixel cs Float Source #
Change pixel precision to Float
.
toDouble :: (Functor (Pixel cs), Elevator e) => Pixel cs e -> Pixel cs Double Source #
Change pixel precision to Double
.
fromDouble :: (Functor (Pixel cs), Elevator e) => Pixel cs Double -> Pixel cs e Source #
Change pixel precision from Double
.
Componenet
8-bit unsigned integer type
16-bit unsigned integer type
Bounded Word16 | Since: 2.1 |
Enum Word16 | Since: 2.1 |
Eq Word16 | Since: 2.1 |
Integral Word16 | Since: 2.1 |
Num Word16 | Since: 2.1 |
Ord Word16 | Since: 2.1 |
Read Word16 | Since: 2.1 |
Real Word16 | Since: 2.1 |
Show Word16 | Since: 2.1 |
Ix Word16 | Since: 2.1 |
Lift Word16 | |
Unpackable Word16 | |
TiffSaveable Pixel16 | |
PngSavable Pixel16 | |
Pixel Pixel16 | |
LumaPlaneExtractable Pixel16 | |
PackeablePixel Pixel16 | |
Storable Word16 | Since: 2.1 |
Bits Word16 | Since: 2.1 |
FiniteBits Word16 | Since: 4.6.0.0 |
Default Word16 | |
NFData Word16 | |
Unbox Word16 | |
Prim Word16 | |
Elevator Word16 Source # | Values between |
Decimable Pixel16 Pixel8 | |
TransparentPixel PixelYA16 Pixel16 | |
ColorConvertible Pixel8 Pixel16 | |
ColorConvertible Pixel16 PixelYA16 | |
ColorConvertible Pixel16 PixelRGB16 | |
ColorConvertible Pixel16 PixelRGBA16 | |
Vector Vector Word16 | |
MVector MVector Word16 | |
type StorageType Word16 | |
type PixelBaseComponent Pixel16 | |
type PackedRepresentation Pixel16 | |
data Vector Word16 | |
data MVector s Word16 | |
32-bit unsigned integer type
Bounded Word32 | Since: 2.1 |
Enum Word32 | Since: 2.1 |
Eq Word32 | Since: 2.1 |
Integral Word32 | Since: 2.1 |
Num Word32 | Since: 2.1 |
Ord Word32 | Since: 2.1 |
Read Word32 | Since: 2.1 |
Real Word32 | Since: 2.1 |
Show Word32 | Since: 2.1 |
Ix Word32 | Since: 2.1 |
Lift Word32 | |
Unpackable Word32 | |
Pixel Pixel32 | |
LumaPlaneExtractable Pixel32 | |
PackeablePixel Pixel32 | |
Storable Word32 | Since: 2.1 |
Bits Word32 | Since: 2.1 |
FiniteBits Word32 | Since: 4.6.0.0 |
Default Word32 | |
NFData Word32 | |
Unbox Word32 | |
Prim Word32 | |
Elevator Word32 Source # | Values between |
Vector Vector Word32 | |
MVector MVector Word32 | |
type StorageType Word32 | |
type PixelBaseComponent Pixel32 | |
type PackedRepresentation Pixel32 | |
data Vector Word32 | |
data MVector s Word32 | |
64-bit unsigned integer type
Bounded Word64 | Since: 2.1 |
Enum Word64 | Since: 2.1 |
Eq Word64 | Since: 2.1 |
Integral Word64 | Since: 2.1 |
Num Word64 | Since: 2.1 |
Ord Word64 | Since: 2.1 |
Read Word64 | Since: 2.1 |
Real Word64 | Since: 2.1 |
Show Word64 | Since: 2.1 |
Ix Word64 | Since: 2.1 |
Lift Word64 | |
Storable Word64 | Since: 2.1 |
Bits Word64 | Since: 2.1 |
FiniteBits Word64 | Since: 4.6.0.0 |
Default Word64 | |
NFData Word64 | |
Unbox Word64 | |
Prim Word64 | |
Elevator Word64 Source # | Values between |
Vector Vector Word64 | |
MVector MVector Word64 | |
data Vector Word64 | |
data MVector s Word64 | |