Color-0.2.0: Color spaces and conversions between them

Copyright(c) Alexey Kuleshevich 2019-2020
LicenseBSD3
MaintainerAlexey Kuleshevich <lehins@yandex.ru>
Stabilityexperimental
Portabilitynon-portable
Safe HaskellNone
LanguageHaskell2010

Graphics.Pixel.ColorSpace

Contents

Description

 
Synopsis

Documentation

newtype Pixel cs e Source #

Digital imaging is one of the most common places for a color to be used in. The smallest element in any image is a pixel, which is defined by its color.

Since: 0.1.0

Constructors

Pixel (Color cs e) 

Bundled Patterns

pattern PixelY :: e -> Pixel (Y i) e

Constructor for a pixel with Luminance

Since: 0.1.0

pattern PixelXYZ :: e -> e -> e -> Pixel (XYZ i) e

Constructor for a pixel in CIE1931 XYZ color space

Since: 0.1.0

pattern PixelRGB :: RedGreenBlue cs (i :: k) => e -> e -> e -> Pixel (cs l) e

Constructor for a pixel in RGB color space.

Since: 0.1.0

pattern PixelHSI :: e -> e -> e -> Pixel (HSI cs) e

Constructor for a pixel in HSI.

Since: 0.1.0

pattern PixelHSL :: e -> e -> e -> Pixel (HSL cs) e

Constructor for a pixel in HSL.

Since: 0.1.0

pattern PixelHSV :: e -> e -> e -> Pixel (HSV cs) e

Constructor for a pixel in HSV.

Since: 0.1.0

pattern PixelCMYK :: e -> e -> e -> e -> Pixel (CMYK cs) e

Constructor for a pixel in CMYK.

Since: 0.1.0

pattern PixelYCbCr :: e -> e -> e -> Pixel (YCbCr cs) e

Constructor for a pixel in YCbCr.

Since: 0.1.0

pattern PixelY' :: e -> Pixel Y' e

Constructor for a pixel with Luma (not to be confused with luminance Y)

Since: 0.1.4

pattern PixelYA :: e -> e -> Pixel (Alpha (Y i)) e

Constructor for a pixel with Luminance and Alpha channel

Since: 0.1.0

pattern PixelXYZA :: e -> e -> e -> e -> Pixel (Alpha (XYZ i)) e

Constructor for a pixel in CIE1931 XYZ color space with Alpha channel

Since: 0.1.0

pattern PixelRGBA :: RedGreenBlue cs i => e -> e -> e -> e -> Pixel (Alpha (cs l)) e

Constructor for a pixel in RGB color space with Alpha channel

Since: 0.1.0

pattern PixelHSIA :: e -> e -> e -> e -> Pixel (Alpha (HSI cs)) e

Constructor for a pixel in HSI with alpha channel.

Since: 0.1.0

pattern PixelHSLA :: e -> e -> e -> e -> Pixel (Alpha (HSL cs)) e

Constructor for a pixel in HSL with alpha channel.

Since: 0.1.0

pattern PixelHSVA :: e -> e -> e -> e -> Pixel (Alpha (HSV cs)) e

Constructor for a pixel in HSV with alpha channel.

Since: 0.1.0

pattern PixelCMYKA :: e -> e -> e -> e -> e -> Pixel (Alpha (CMYK cs)) e

Constructor for a pixel in CMYK with alpha channel.

Since: 0.1.0

pattern PixelYCbCrA :: e -> e -> e -> e -> Pixel (Alpha (YCbCr cs)) e

Constructor for a pixel in YCbCr with alpha channel.

Since: 0.1.0

pattern PixelY'A :: e -> e -> Pixel (Alpha Y') e

Constructor for a pixel with Luma and Alpha channel (not to be confused with luminance Y)

Since: 0.1.4

Instances
ColorModel cs e => Vector Vector (Pixel cs e) Source # 
Instance details

Defined in Graphics.Pixel.Internal

Methods

basicUnsafeFreeze :: PrimMonad m => Mutable Vector (PrimState m) (Pixel cs e) -> m (Vector (Pixel cs e)) #

basicUnsafeThaw :: PrimMonad m => Vector (Pixel cs e) -> m (Mutable Vector (PrimState m) (Pixel cs e)) #

basicLength :: Vector (Pixel cs e) -> Int #

basicUnsafeSlice :: Int -> Int -> Vector (Pixel cs e) -> Vector (Pixel cs e) #

basicUnsafeIndexM :: Monad m => Vector (Pixel cs e) -> Int -> m (Pixel cs e) #

basicUnsafeCopy :: PrimMonad m => Mutable Vector (PrimState m) (Pixel cs e) -> Vector (Pixel cs e) -> m () #

elemseq :: Vector (Pixel cs e) -> Pixel cs e -> b -> b #

ColorModel cs e => MVector MVector (Pixel cs e) Source # 
Instance details

Defined in Graphics.Pixel.Internal

Methods

basicLength :: MVector s (Pixel cs e) -> Int #

basicUnsafeSlice :: Int -> Int -> MVector s (Pixel cs e) -> MVector s (Pixel cs e) #

basicOverlaps :: MVector s (Pixel cs e) -> MVector s (Pixel cs e) -> Bool #

basicUnsafeNew :: PrimMonad m => Int -> m (MVector (PrimState m) (Pixel cs e)) #

basicInitialize :: PrimMonad m => MVector (PrimState m) (Pixel cs e) -> m () #

basicUnsafeReplicate :: PrimMonad m => Int -> Pixel cs e -> m (MVector (PrimState m) (Pixel cs e)) #

basicUnsafeRead :: PrimMonad m => MVector (PrimState m) (Pixel cs e) -> Int -> m (Pixel cs e) #

basicUnsafeWrite :: PrimMonad m => MVector (PrimState m) (Pixel cs e) -> Int -> Pixel cs e -> m () #

basicClear :: PrimMonad m => MVector (PrimState m) (Pixel cs e) -> m () #

basicSet :: PrimMonad m => MVector (PrimState m) (Pixel cs e) -> Pixel cs e -> m () #

basicUnsafeCopy :: PrimMonad m => MVector (PrimState m) (Pixel cs e) -> MVector (PrimState m) (Pixel cs e) -> m () #

basicUnsafeMove :: PrimMonad m => MVector (PrimState m) (Pixel cs e) -> MVector (PrimState m) (Pixel cs e) -> m () #

basicUnsafeGrow :: PrimMonad m => MVector (PrimState m) (Pixel cs e) -> Int -> m (MVector (PrimState m) (Pixel cs e)) #

Functor (Color cs) => Functor (Pixel cs) Source # 
Instance details

Defined in Graphics.Pixel.Internal

Methods

fmap :: (a -> b) -> Pixel cs a -> Pixel cs b #

(<$) :: a -> Pixel cs b -> Pixel cs a #

Applicative (Color cs) => Applicative (Pixel cs) Source # 
Instance details

Defined in Graphics.Pixel.Internal

Methods

pure :: a -> Pixel cs a #

(<*>) :: Pixel cs (a -> b) -> Pixel cs a -> Pixel cs b #

liftA2 :: (a -> b -> c) -> Pixel cs a -> Pixel cs b -> Pixel cs c #

(*>) :: Pixel cs a -> Pixel cs b -> Pixel cs b #

(<*) :: Pixel cs a -> Pixel cs b -> Pixel cs a #

Foldable (Color cs) => Foldable (Pixel cs) Source # 
Instance details

Defined in Graphics.Pixel.Internal

Methods

fold :: Monoid m => Pixel cs m -> m #

foldMap :: Monoid m => (a -> m) -> Pixel cs a -> m #

foldr :: (a -> b -> b) -> b -> Pixel cs a -> b #

foldr' :: (a -> b -> b) -> b -> Pixel cs a -> b #

foldl :: (b -> a -> b) -> b -> Pixel cs a -> b #

foldl' :: (b -> a -> b) -> b -> Pixel cs a -> b #

foldr1 :: (a -> a -> a) -> Pixel cs a -> a #

foldl1 :: (a -> a -> a) -> Pixel cs a -> a #

toList :: Pixel cs a -> [a] #

null :: Pixel cs a -> Bool #

length :: Pixel cs a -> Int #

elem :: Eq a => a -> Pixel cs a -> Bool #

maximum :: Ord a => Pixel cs a -> a #

minimum :: Ord a => Pixel cs a -> a #

sum :: Num a => Pixel cs a -> a #

product :: Num a => Pixel cs a -> a #

Traversable (Color cs) => Traversable (Pixel cs) Source # 
Instance details

Defined in Graphics.Pixel.Internal

Methods

traverse :: Applicative f => (a -> f b) -> Pixel cs a -> f (Pixel cs b) #

sequenceA :: Applicative f => Pixel cs (f a) -> f (Pixel cs a) #

mapM :: Monad m => (a -> m b) -> Pixel cs a -> m (Pixel cs b) #

sequence :: Monad m => Pixel cs (m a) -> m (Pixel cs a) #

Bounded (Color cs e) => Bounded (Pixel cs e) Source # 
Instance details

Defined in Graphics.Pixel.Internal

Methods

minBound :: Pixel cs e #

maxBound :: Pixel cs e #

Eq (Color cs e) => Eq (Pixel cs e) Source # 
Instance details

Defined in Graphics.Pixel.Internal

Methods

(==) :: Pixel cs e -> Pixel cs e -> Bool #

(/=) :: Pixel cs e -> Pixel cs e -> Bool #

Floating (Color cs e) => Floating (Pixel cs e) Source # 
Instance details

Defined in Graphics.Pixel.Internal

Methods

pi :: Pixel cs e #

exp :: Pixel cs e -> Pixel cs e #

log :: Pixel cs e -> Pixel cs e #

sqrt :: Pixel cs e -> Pixel cs e #

(**) :: Pixel cs e -> Pixel cs e -> Pixel cs e #

logBase :: Pixel cs e -> Pixel cs e -> Pixel cs e #

sin :: Pixel cs e -> Pixel cs e #

cos :: Pixel cs e -> Pixel cs e #

tan :: Pixel cs e -> Pixel cs e #

asin :: Pixel cs e -> Pixel cs e #

acos :: Pixel cs e -> Pixel cs e #

atan :: Pixel cs e -> Pixel cs e #

sinh :: Pixel cs e -> Pixel cs e #

cosh :: Pixel cs e -> Pixel cs e #

tanh :: Pixel cs e -> Pixel cs e #

asinh :: Pixel cs e -> Pixel cs e #

acosh :: Pixel cs e -> Pixel cs e #

atanh :: Pixel cs e -> Pixel cs e #

log1p :: Pixel cs e -> Pixel cs e #

expm1 :: Pixel cs e -> Pixel cs e #

log1pexp :: Pixel cs e -> Pixel cs e #

log1mexp :: Pixel cs e -> Pixel cs e #

Fractional (Color cs e) => Fractional (Pixel cs e) Source # 
Instance details

Defined in Graphics.Pixel.Internal

Methods

(/) :: Pixel cs e -> Pixel cs e -> Pixel cs e #

recip :: Pixel cs e -> Pixel cs e #

fromRational :: Rational -> Pixel cs e #

Num (Color cs e) => Num (Pixel cs e) Source # 
Instance details

Defined in Graphics.Pixel.Internal

Methods

(+) :: Pixel cs e -> Pixel cs e -> Pixel cs e #

(-) :: Pixel cs e -> Pixel cs e -> Pixel cs e #

(*) :: Pixel cs e -> Pixel cs e -> Pixel cs e #

negate :: Pixel cs e -> Pixel cs e #

abs :: Pixel cs e -> Pixel cs e #

signum :: Pixel cs e -> Pixel cs e #

fromInteger :: Integer -> Pixel cs e #

Ord (Color cs e) => Ord (Pixel cs e) Source # 
Instance details

Defined in Graphics.Pixel.Internal

Methods

compare :: Pixel cs e -> Pixel cs e -> Ordering #

(<) :: Pixel cs e -> Pixel cs e -> Bool #

(<=) :: Pixel cs e -> Pixel cs e -> Bool #

(>) :: Pixel cs e -> Pixel cs e -> Bool #

(>=) :: Pixel cs e -> Pixel cs e -> Bool #

max :: Pixel cs e -> Pixel cs e -> Pixel cs e #

min :: Pixel cs e -> Pixel cs e -> Pixel cs e #

Show (Color cs e) => Show (Pixel cs e) Source # 
Instance details

Defined in Graphics.Pixel.Internal

Methods

showsPrec :: Int -> Pixel cs e -> ShowS #

show :: Pixel cs e -> String #

showList :: [Pixel cs e] -> ShowS #

Storable (Color cs e) => Storable (Pixel cs e) Source # 
Instance details

Defined in Graphics.Pixel.Internal

Methods

sizeOf :: Pixel cs e -> Int #

alignment :: Pixel cs e -> Int #

peekElemOff :: Ptr (Pixel cs e) -> Int -> IO (Pixel cs e) #

pokeElemOff :: Ptr (Pixel cs e) -> Int -> Pixel cs e -> IO () #

peekByteOff :: Ptr b -> Int -> IO (Pixel cs e) #

pokeByteOff :: Ptr b -> Int -> Pixel cs e -> IO () #

peek :: Ptr (Pixel cs e) -> IO (Pixel cs e) #

poke :: Ptr (Pixel cs e) -> Pixel cs e -> IO () #

Default (Color cs e) => Default (Pixel cs e) Source # 
Instance details

Defined in Graphics.Pixel.Internal

Methods

def :: Pixel cs e #

NFData (Color cs e) => NFData (Pixel cs e) Source # 
Instance details

Defined in Graphics.Pixel.Internal

Methods

rnf :: Pixel cs e -> () #

ColorModel cs e => Unbox (Pixel cs e) Source #

Unboxing of a Pixel.

Instance details

Defined in Graphics.Pixel.Internal

newtype MVector s (Pixel cs e) Source # 
Instance details

Defined in Graphics.Pixel.Internal

newtype MVector s (Pixel cs e) = MV_Pixel (MVector s (Components cs e))
newtype Vector (Pixel cs e) Source # 
Instance details

Defined in Graphics.Pixel.Internal

newtype Vector (Pixel cs e) = V_Pixel (Vector (Components cs e))

liftPixel :: (Color cs e -> Color cs' e') -> Pixel cs e -> Pixel cs' e' Source #

Apply a function to Pixel's Color

Since: 0.1.0

pixelColor :: Pixel cs e -> Color cs e Source #

Get to the underlying Color

Since: 0.1.4

Conversion

Color space

convertPixel :: forall cs i e cs' i' e'. (ColorSpace cs' i' e', ColorSpace cs i e) => Pixel cs' e' -> Pixel cs e Source #

Convert a pixel from one color space to any other.

>>> :set -XDataKinds
>>> :set -XTypeApplications
>>> px = PixelSRGB @Float 0.0 0.5 1.0
>>> px
<SRGB 'NonLinear:( 0.00000000, 0.50000000, 1.00000000)>
>>> convertPixel @(AdobeRGB 'NonLinear) @_ @Word8 px
<AdobeRGB 'NonLinear:( 71,127,251)>

Since: 0.1.0

toPixelY :: ColorSpace cs i e => Pixel cs e -> Pixel (Y i) e Source #

Compute luminance of a pixel color

Since: 0.1.0

toPixelXYZ :: (ColorSpace cs i e, Elevator a, RealFloat a) => Pixel cs e -> Pixel (XYZ i) a Source #

Convert to CIE1931 XYZ color space, with the same illuminant as the original.

Since: 0.1.0

fromPixelXYZ :: (ColorSpace cs i e, Elevator a, RealFloat a) => Pixel (XYZ i) a -> Pixel cs e Source #

Convert from CIE1931 XYZ color space, with the same illuminant as the target color space.

Since: 0.1.0

toPixelBaseSpace :: (ColorSpace cs i e, bcs ~ BaseSpace cs, ColorSpace bcs i e) => Pixel cs e -> Pixel bcs e Source #

Convert pixel in an alternative representation of color space, to its base color space. Example from CMYK to SRGB

Since: 0.1.0

fromPixelBaseSpace :: (ColorSpace cs i e, bcs ~ BaseSpace cs, ColorSpace bcs i e) => Pixel bcs e -> Pixel cs e Source #

Covert a color space of a pixel into it's alternative representation. Example AdobeRGB to HSI.

Since: 0.1.0

Color model

toPixelBaseModel :: ColorSpace cs i e => Pixel cs e -> Pixel (BaseModel cs) e Source #

Drop all color space information and only keep the values encoded in the fitting color model, which the color space is backed by.

Since: 0.1.0

fromPixelBaseModel :: ColorSpace cs i e => Pixel (BaseModel cs) e -> Pixel cs e Source #

Promote a pixel without color space information to a color space that is backed by the fitting color model

Since: 0.1.0

Precision

toPixel8 :: ColorModel cs e => Pixel cs e -> Pixel cs Word8 Source #

Convert all channels of a pixel to 8bits each, while doing appropriate scaling. See Elevator.

Since: 0.1.0

toPixel16 :: ColorModel cs e => Pixel cs e -> Pixel cs Word16 Source #

Convert all channels of a pixel to 16bits each, while appropriate scaling. See Elevator.

Since: 0.1.0

toPixel32 :: ColorModel cs e => Pixel cs e -> Pixel cs Word32 Source #

Convert all channels of a pixel to 32bits each, while doing appropriate scaling. See Elevator.

Since: 0.1.0

toPixel64 :: ColorModel cs e => Pixel cs e -> Pixel cs Word64 Source #

Convert all channels of a pixel to 64bits each, while doing appropriate scaling. See Elevator.

Since: 0.1.0

toPixelF :: ColorModel cs e => Pixel cs e -> Pixel cs Float Source #

Convert all channels of a pixel to 32bit floating point numers each, while doing appropriate scaling. See Elevator.

Since: 0.1.0

toPixelD :: ColorModel cs e => Pixel cs e -> Pixel cs Double Source #

Convert all channels of a pixel to 64bit floating point numers each, while doing appropriate scaling. See Elevator.

Since: 0.1.0

RGB

toPixelLinearRGB :: (RedGreenBlue cs i, Elevator e, RealFloat e) => Pixel (cs NonLinear) e -> Pixel (cs Linear) e Source #

Convert non-linear RGB color space into linear one

Since: 0.2.0

fromPixelLinearRGB :: (RedGreenBlue cs i, Elevator e, RealFloat e) => Pixel (cs Linear) e -> Pixel (cs NonLinear) e Source #

Convert linear RGB color space into a non-linear one

Since: 0.2.0

sRGB color space

pattern PixelSRGB :: e -> e -> e -> Pixel (SRGB NonLinear) e Source #

Constructor for a pixel in sRGB color space

Since: 0.1.0

pattern PixelSRGBA :: e -> e -> e -> e -> Pixel (Alpha (SRGB NonLinear)) e Source #

Constructor for a pixel in sRGB color space with Alpha channel

Since: 0.1.0

data SRGB (l :: Linearity) Source #

The most common sRGB color space with the default D65 illuminant

Instances
Luma SRGB Source # 
Instance details

Defined in Graphics.Color.Space.RGB.SRGB

Functor (Color (SRGB l)) Source #

SRGB color space

Instance details

Defined in Graphics.Color.Space.RGB.SRGB

Methods

fmap :: (a -> b) -> Color (SRGB l) a -> Color (SRGB l) b #

(<$) :: a -> Color (SRGB l) b -> Color (SRGB l) a #

Applicative (Color (SRGB l)) Source #

SRGB color space

Instance details

Defined in Graphics.Color.Space.RGB.SRGB

Methods

pure :: a -> Color (SRGB l) a #

(<*>) :: Color (SRGB l) (a -> b) -> Color (SRGB l) a -> Color (SRGB l) b #

liftA2 :: (a -> b -> c) -> Color (SRGB l) a -> Color (SRGB l) b -> Color (SRGB l) c #

(*>) :: Color (SRGB l) a -> Color (SRGB l) b -> Color (SRGB l) b #

(<*) :: Color (SRGB l) a -> Color (SRGB l) b -> Color (SRGB l) a #

Foldable (Color (SRGB l)) Source #

SRGB color space

Instance details

Defined in Graphics.Color.Space.RGB.SRGB

Methods

fold :: Monoid m => Color (SRGB l) m -> m #

foldMap :: Monoid m => (a -> m) -> Color (SRGB l) a -> m #

foldr :: (a -> b -> b) -> b -> Color (SRGB l) a -> b #

foldr' :: (a -> b -> b) -> b -> Color (SRGB l) a -> b #

foldl :: (b -> a -> b) -> b -> Color (SRGB l) a -> b #

foldl' :: (b -> a -> b) -> b -> Color (SRGB l) a -> b #

foldr1 :: (a -> a -> a) -> Color (SRGB l) a -> a #

foldl1 :: (a -> a -> a) -> Color (SRGB l) a -> a #

toList :: Color (SRGB l) a -> [a] #

null :: Color (SRGB l) a -> Bool #

length :: Color (SRGB l) a -> Int #

elem :: Eq a => a -> Color (SRGB l) a -> Bool #

maximum :: Ord a => Color (SRGB l) a -> a #

minimum :: Ord a => Color (SRGB l) a -> a #

sum :: Num a => Color (SRGB l) a -> a #

product :: Num a => Color (SRGB l) a -> a #

Traversable (Color (SRGB l)) Source #

SRGB color space

Instance details

Defined in Graphics.Color.Space.RGB.SRGB

Methods

traverse :: Applicative f => (a -> f b) -> Color (SRGB l) a -> f (Color (SRGB l) b) #

sequenceA :: Applicative f => Color (SRGB l) (f a) -> f (Color (SRGB l) a) #

mapM :: Monad m => (a -> m b) -> Color (SRGB l) a -> m (Color (SRGB l) b) #

sequence :: Monad m => Color (SRGB l) (m a) -> m (Color (SRGB l) a) #

(Typeable l, Elevator e) => ColorModel (SRGB l) e Source #

SRGB color space

Instance details

Defined in Graphics.Color.Space.RGB.SRGB

Associated Types

type Components (SRGB l) e :: Type Source #

RedGreenBlue SRGB D65 Source #

SRGB color space

Instance details

Defined in Graphics.Color.Space.RGB.SRGB

Elevator e => ColorSpace (SRGB Linear) D65 e Source #

SRGB linear color space

Instance details

Defined in Graphics.Color.Space.RGB.SRGB

Associated Types

type BaseModel (SRGB Linear) :: Type Source #

type BaseSpace (SRGB Linear) :: Type Source #

Elevator e => ColorSpace (SRGB NonLinear) D65 e Source #

SRGB linear color space

Instance details

Defined in Graphics.Color.Space.RGB.SRGB

Associated Types

type BaseModel (SRGB NonLinear) :: Type Source #

type BaseSpace (SRGB NonLinear) :: Type Source #

Elevator e => ColorSpace (YCbCr (SRGB NonLinear)) D65 e Source #

YCbCr representation for SRGB color space

Instance details

Defined in Graphics.Color.Space.RGB.Alternative.YCbCr

Associated Types

type BaseModel (YCbCr (SRGB NonLinear)) :: Type Source #

type BaseSpace (YCbCr (SRGB NonLinear)) :: Type Source #

ColorSpace (SRGB l) D65 e => ColorSpace (CMYK (SRGB l)) D65 e Source #

CMYK representation for SRGB color space

Instance details

Defined in Graphics.Color.Space.RGB.Alternative.CMYK

Associated Types

type BaseModel (CMYK (SRGB l)) :: Type Source #

type BaseSpace (CMYK (SRGB l)) :: Type Source #

Eq e => Eq (Color (SRGB l) e) Source #

SRGB color space

Instance details

Defined in Graphics.Color.Space.RGB.SRGB

Methods

(==) :: Color (SRGB l) e -> Color (SRGB l) e -> Bool #

(/=) :: Color (SRGB l) e -> Color (SRGB l) e -> Bool #

Ord e => Ord (Color (SRGB l) e) Source #

SRGB color space

Instance details

Defined in Graphics.Color.Space.RGB.SRGB

Methods

compare :: Color (SRGB l) e -> Color (SRGB l) e -> Ordering #

(<) :: Color (SRGB l) e -> Color (SRGB l) e -> Bool #

(<=) :: Color (SRGB l) e -> Color (SRGB l) e -> Bool #

(>) :: Color (SRGB l) e -> Color (SRGB l) e -> Bool #

(>=) :: Color (SRGB l) e -> Color (SRGB l) e -> Bool #

max :: Color (SRGB l) e -> Color (SRGB l) e -> Color (SRGB l) e #

min :: Color (SRGB l) e -> Color (SRGB l) e -> Color (SRGB l) e #

(Typeable l, Elevator e) => Show (Color (SRGB l) e) Source #

SRGB color space

Instance details

Defined in Graphics.Color.Space.RGB.SRGB

Methods

showsPrec :: Int -> Color (SRGB l) e -> ShowS #

show :: Color (SRGB l) e -> String #

showList :: [Color (SRGB l) e] -> ShowS #

Storable e => Storable (Color (SRGB l) e) Source #

SRGB color space

Instance details

Defined in Graphics.Color.Space.RGB.SRGB

Methods

sizeOf :: Color (SRGB l) e -> Int #

alignment :: Color (SRGB l) e -> Int #

peekElemOff :: Ptr (Color (SRGB l) e) -> Int -> IO (Color (SRGB l) e) #

pokeElemOff :: Ptr (Color (SRGB l) e) -> Int -> Color (SRGB l) e -> IO () #

peekByteOff :: Ptr b -> Int -> IO (Color (SRGB l) e) #

pokeByteOff :: Ptr b -> Int -> Color (SRGB l) e -> IO () #

peek :: Ptr (Color (SRGB l) e) -> IO (Color (SRGB l) e) #

poke :: Ptr (Color (SRGB l) e) -> Color (SRGB l) e -> IO () #

newtype Color (SRGB l) e Source # 
Instance details

Defined in Graphics.Color.Space.RGB.SRGB

newtype Color (SRGB l) e = SRGB (Color RGB e)
type BaseModel (SRGB Linear) Source # 
Instance details

Defined in Graphics.Color.Space.RGB.SRGB

type BaseModel (SRGB NonLinear) Source # 
Instance details

Defined in Graphics.Color.Space.RGB.SRGB

type BaseSpace (SRGB Linear) Source # 
Instance details

Defined in Graphics.Color.Space.RGB.SRGB

type BaseSpace (SRGB NonLinear) Source # 
Instance details

Defined in Graphics.Color.Space.RGB.SRGB

type Components (SRGB l) e Source # 
Instance details

Defined in Graphics.Color.Space.RGB.SRGB

type Components (SRGB l) e = (e, e, e)
type BaseModel (YCbCr (SRGB NonLinear)) Source # 
Instance details

Defined in Graphics.Color.Space.RGB.Alternative.YCbCr

type BaseModel (CMYK (SRGB l)) Source # 
Instance details

Defined in Graphics.Color.Space.RGB.Alternative.CMYK

type BaseModel (CMYK (SRGB l)) = CMYK
type BaseSpace (YCbCr (SRGB NonLinear)) Source # 
Instance details

Defined in Graphics.Color.Space.RGB.Alternative.YCbCr

type BaseSpace (CMYK (SRGB l)) Source # 
Instance details

Defined in Graphics.Color.Space.RGB.Alternative.CMYK

type BaseSpace (CMYK (SRGB l)) = SRGB l

data D65 Source #

Whitepoint D65 that is so commonly used for sRGB and other color spaces defined by ITU: Rec.601 (525 and 625) and Rec.709 standards. It is slightly different than D65 that is defined by CIE1931 and D65 specified in Rec.470.

>>> whitePoint :: WhitePoint D65 Float
WhitePoint (Chromaticity {chromaticityCIExyY = <CIExyY * D65:( 0.31270000, 0.32900000)>})
>>> whitePointTristimulus :: Color (XYZ D65) Float
<XYZ * D65:( 0.95045596, 1.00000000, 1.08905770)>
>>> colorTemperature :: CCT D65
CCT {unCCT = 6504.0}

Since: 0.1.0

Instances
Illuminant D65 Source #

[x=0.3127, y=0.3290] - Rec. ITU-R BT.601-7, Rec. ITU-R BT.709-6, IEC 61966-2-1:1999

Instance details

Defined in Graphics.Color.Illuminant.ITU.Rec601

Associated Types

type Temperature D65 :: n Source #

RedGreenBlue BT601_625 D65 Source #

ITU-R BT.601 (625) color space

Instance details

Defined in Graphics.Color.Space.RGB.ITU.Rec601

RedGreenBlue BT601_525 D65 Source #

ITU-R BT.601 (525) color space

Instance details

Defined in Graphics.Color.Space.RGB.ITU.Rec601

RedGreenBlue BT709 D65 Source #

ITU-R BT.709 color space

Instance details

Defined in Graphics.Color.Space.RGB.ITU.Rec709

RedGreenBlue AdobeRGB D65 Source #

AdobeRGB color space

Instance details

Defined in Graphics.Color.Space.RGB.AdobeRGB

RedGreenBlue SRGB D65 Source #

SRGB color space

Instance details

Defined in Graphics.Color.Space.RGB.SRGB

Elevator e => ColorSpace (BT601_625 Linear) D65 e Source #

ITU-R BT.601 (625) linear color space

Instance details

Defined in Graphics.Color.Space.RGB.ITU.Rec601

Elevator e => ColorSpace (BT601_625 NonLinear) D65 e Source #

ITU-R BT.601 (625) color space

Instance details

Defined in Graphics.Color.Space.RGB.ITU.Rec601

Elevator e => ColorSpace (BT601_525 Linear) D65 e Source #

ITU-R BT.601 (525) linear color space

Instance details

Defined in Graphics.Color.Space.RGB.ITU.Rec601

Elevator e => ColorSpace (BT601_525 NonLinear) D65 e Source #

ITU-R BT.601 (525) linear color space

Instance details

Defined in Graphics.Color.Space.RGB.ITU.Rec601

Elevator e => ColorSpace (BT709 Linear) D65 e Source #

ITU-R BT.709 linear color space

Instance details

Defined in Graphics.Color.Space.RGB.ITU.Rec709

Associated Types

type BaseModel (BT709 Linear) :: Type Source #

type BaseSpace (BT709 Linear) :: Type Source #

Elevator e => ColorSpace (BT709 NonLinear) D65 e Source #

ITU-R BT.709 color space

Instance details

Defined in Graphics.Color.Space.RGB.ITU.Rec709

Associated Types

type BaseModel (BT709 NonLinear) :: Type Source #

type BaseSpace (BT709 NonLinear) :: Type Source #

Elevator e => ColorSpace (AdobeRGB Linear) D65 e Source #

AdobeRGB linear color space

Instance details

Defined in Graphics.Color.Space.RGB.AdobeRGB

Associated Types

type BaseModel (AdobeRGB Linear) :: Type Source #

type BaseSpace (AdobeRGB Linear) :: Type Source #

Elevator e => ColorSpace (AdobeRGB NonLinear) D65 e Source #

AdobeRGB color space

Instance details

Defined in Graphics.Color.Space.RGB.AdobeRGB

Elevator e => ColorSpace (SRGB Linear) D65 e Source #

SRGB linear color space

Instance details

Defined in Graphics.Color.Space.RGB.SRGB

Associated Types

type BaseModel (SRGB Linear) :: Type Source #

type BaseSpace (SRGB Linear) :: Type Source #

Elevator e => ColorSpace (SRGB NonLinear) D65 e Source #

SRGB linear color space

Instance details

Defined in Graphics.Color.Space.RGB.SRGB

Associated Types

type BaseModel (SRGB NonLinear) :: Type Source #

type BaseSpace (SRGB NonLinear) :: Type Source #

Elevator e => ColorSpace (YCbCr (BT601_625 NonLinear)) D65 e Source #

YCbCr representation for BT601_625 color space

Instance details

Defined in Graphics.Color.Space.RGB.Alternative.YCbCr

Elevator e => ColorSpace (YCbCr (BT601_525 NonLinear)) D65 e Source #

YCbCr representation for BT601_525 color space

Instance details

Defined in Graphics.Color.Space.RGB.Alternative.YCbCr

Elevator e => ColorSpace (YCbCr (BT709 NonLinear)) D65 e Source #

YCbCr representation for BT709 color space

Instance details

Defined in Graphics.Color.Space.RGB.Alternative.YCbCr

Associated Types

type BaseModel (YCbCr (BT709 NonLinear)) :: Type Source #

type BaseSpace (YCbCr (BT709 NonLinear)) :: Type Source #

Elevator e => ColorSpace (YCbCr (SRGB NonLinear)) D65 e Source #

YCbCr representation for SRGB color space

Instance details

Defined in Graphics.Color.Space.RGB.Alternative.YCbCr

Associated Types

type BaseModel (YCbCr (SRGB NonLinear)) :: Type Source #

type BaseSpace (YCbCr (SRGB NonLinear)) :: Type Source #

ColorSpace (BT470_625 l) D65 e => ColorSpace (CMYK (BT470_625 l)) D65 e Source #

CMYK representation for BT470_625 color space

Instance details

Defined in Graphics.Color.Space.RGB.Alternative.CMYK

Associated Types

type BaseModel (CMYK (BT470_625 l)) :: Type Source #

type BaseSpace (CMYK (BT470_625 l)) :: Type Source #

ColorSpace (BT470_525 l) D65 e => ColorSpace (CMYK (BT470_525 l)) D65 e Source #

CMYK representation for BT470_525 color space

Instance details

Defined in Graphics.Color.Space.RGB.Alternative.CMYK

Associated Types

type BaseModel (CMYK (BT470_525 l)) :: Type Source #

type BaseSpace (CMYK (BT470_525 l)) :: Type Source #

ColorSpace (BT601_625 l) D65 e => ColorSpace (CMYK (BT601_625 l)) D65 e Source #

CMYK representation for BT601_625 color space

Instance details

Defined in Graphics.Color.Space.RGB.Alternative.CMYK

Associated Types

type BaseModel (CMYK (BT601_625 l)) :: Type Source #

type BaseSpace (CMYK (BT601_625 l)) :: Type Source #

ColorSpace (BT601_525 l) D65 e => ColorSpace (CMYK (BT601_525 l)) D65 e Source #

CMYK representation for BT601_525 color space

Instance details

Defined in Graphics.Color.Space.RGB.Alternative.CMYK

Associated Types

type BaseModel (CMYK (BT601_525 l)) :: Type Source #

type BaseSpace (CMYK (BT601_525 l)) :: Type Source #

ColorSpace (BT709 l) D65 e => ColorSpace (CMYK (BT709 l)) D65 e Source #

CMYK representation for BT709 color space

Instance details

Defined in Graphics.Color.Space.RGB.Alternative.CMYK

Associated Types

type BaseModel (CMYK (BT709 l)) :: Type Source #

type BaseSpace (CMYK (BT709 l)) :: Type Source #

ColorSpace (AdobeRGB l) D65 e => ColorSpace (CMYK (AdobeRGB l)) D65 e Source #

CMYK representation for AdobeRGB color space

Instance details

Defined in Graphics.Color.Space.RGB.Alternative.CMYK

Associated Types

type BaseModel (CMYK (AdobeRGB l)) :: Type Source #

type BaseSpace (CMYK (AdobeRGB l)) :: Type Source #

ColorSpace (SRGB l) D65 e => ColorSpace (CMYK (SRGB l)) D65 e Source #

CMYK representation for SRGB color space

Instance details

Defined in Graphics.Color.Space.RGB.Alternative.CMYK

Associated Types

type BaseModel (CMYK (SRGB l)) :: Type Source #

type BaseSpace (CMYK (SRGB l)) :: Type Source #

type Temperature D65 Source # 
Instance details

Defined in Graphics.Color.Illuminant.ITU.Rec601

type Temperature D65 = 6504

Adobe RGB color space

data AdobeRGB (l :: Linearity) Source #

A very common AdobeRGB (1998) color space with the default D65 illuminant

Since: 0.1.0

Instances
Functor (Color (AdobeRGB l)) Source #

AdobeRGB color space

Instance details

Defined in Graphics.Color.Space.RGB.AdobeRGB

Methods

fmap :: (a -> b) -> Color (AdobeRGB l) a -> Color (AdobeRGB l) b #

(<$) :: a -> Color (AdobeRGB l) b -> Color (AdobeRGB l) a #

Applicative (Color (AdobeRGB l)) Source #

AdobeRGB color space

Instance details

Defined in Graphics.Color.Space.RGB.AdobeRGB

Methods

pure :: a -> Color (AdobeRGB l) a #

(<*>) :: Color (AdobeRGB l) (a -> b) -> Color (AdobeRGB l) a -> Color (AdobeRGB l) b #

liftA2 :: (a -> b -> c) -> Color (AdobeRGB l) a -> Color (AdobeRGB l) b -> Color (AdobeRGB l) c #

(*>) :: Color (AdobeRGB l) a -> Color (AdobeRGB l) b -> Color (AdobeRGB l) b #

(<*) :: Color (AdobeRGB l) a -> Color (AdobeRGB l) b -> Color (AdobeRGB l) a #

Foldable (Color (AdobeRGB l)) Source #

AdobeRGB color space

Instance details

Defined in Graphics.Color.Space.RGB.AdobeRGB

Methods

fold :: Monoid m => Color (AdobeRGB l) m -> m #

foldMap :: Monoid m => (a -> m) -> Color (AdobeRGB l) a -> m #

foldr :: (a -> b -> b) -> b -> Color (AdobeRGB l) a -> b #

foldr' :: (a -> b -> b) -> b -> Color (AdobeRGB l) a -> b #

foldl :: (b -> a -> b) -> b -> Color (AdobeRGB l) a -> b #

foldl' :: (b -> a -> b) -> b -> Color (AdobeRGB l) a -> b #

foldr1 :: (a -> a -> a) -> Color (AdobeRGB l) a -> a #

foldl1 :: (a -> a -> a) -> Color (AdobeRGB l) a -> a #

toList :: Color (AdobeRGB l) a -> [a] #

null :: Color (AdobeRGB l) a -> Bool #

length :: Color (AdobeRGB l) a -> Int #

elem :: Eq a => a -> Color (AdobeRGB l) a -> Bool #

maximum :: Ord a => Color (AdobeRGB l) a -> a #

minimum :: Ord a => Color (AdobeRGB l) a -> a #

sum :: Num a => Color (AdobeRGB l) a -> a #

product :: Num a => Color (AdobeRGB l) a -> a #

Traversable (Color (AdobeRGB l)) Source #

AdobeRGB color space

Instance details

Defined in Graphics.Color.Space.RGB.AdobeRGB

Methods

traverse :: Applicative f => (a -> f b) -> Color (AdobeRGB l) a -> f (Color (AdobeRGB l) b) #

sequenceA :: Applicative f => Color (AdobeRGB l) (f a) -> f (Color (AdobeRGB l) a) #

mapM :: Monad m => (a -> m b) -> Color (AdobeRGB l) a -> m (Color (AdobeRGB l) b) #

sequence :: Monad m => Color (AdobeRGB l) (m a) -> m (Color (AdobeRGB l) a) #

(Typeable l, Elevator e) => ColorModel (AdobeRGB l) e Source #

AdobeRGB color space

Instance details

Defined in Graphics.Color.Space.RGB.AdobeRGB

Associated Types

type Components (AdobeRGB l) e :: Type Source #

RedGreenBlue AdobeRGB D65 Source #

AdobeRGB color space

Instance details

Defined in Graphics.Color.Space.RGB.AdobeRGB

Elevator e => ColorSpace (AdobeRGB Linear) D65 e Source #

AdobeRGB linear color space

Instance details

Defined in Graphics.Color.Space.RGB.AdobeRGB

Associated Types

type BaseModel (AdobeRGB Linear) :: Type Source #

type BaseSpace (AdobeRGB Linear) :: Type Source #

Elevator e => ColorSpace (AdobeRGB NonLinear) D65 e Source #

AdobeRGB color space

Instance details

Defined in Graphics.Color.Space.RGB.AdobeRGB

ColorSpace (AdobeRGB l) D65 e => ColorSpace (CMYK (AdobeRGB l)) D65 e Source #

CMYK representation for AdobeRGB color space

Instance details

Defined in Graphics.Color.Space.RGB.Alternative.CMYK

Associated Types

type BaseModel (CMYK (AdobeRGB l)) :: Type Source #

type BaseSpace (CMYK (AdobeRGB l)) :: Type Source #

Eq e => Eq (Color (AdobeRGB l) e) Source #

AdobeRGB color space

Instance details

Defined in Graphics.Color.Space.RGB.AdobeRGB

Methods

(==) :: Color (AdobeRGB l) e -> Color (AdobeRGB l) e -> Bool #

(/=) :: Color (AdobeRGB l) e -> Color (AdobeRGB l) e -> Bool #

Ord e => Ord (Color (AdobeRGB l) e) Source #

AdobeRGB color space

Instance details

Defined in Graphics.Color.Space.RGB.AdobeRGB

Methods

compare :: Color (AdobeRGB l) e -> Color (AdobeRGB l) e -> Ordering #

(<) :: Color (AdobeRGB l) e -> Color (AdobeRGB l) e -> Bool #

(<=) :: Color (AdobeRGB l) e -> Color (AdobeRGB l) e -> Bool #

(>) :: Color (AdobeRGB l) e -> Color (AdobeRGB l) e -> Bool #

(>=) :: Color (AdobeRGB l) e -> Color (AdobeRGB l) e -> Bool #

max :: Color (AdobeRGB l) e -> Color (AdobeRGB l) e -> Color (AdobeRGB l) e #

min :: Color (AdobeRGB l) e -> Color (AdobeRGB l) e -> Color (AdobeRGB l) e #

(Typeable l, Elevator e) => Show (Color (AdobeRGB l) e) Source #

AdobeRGB color space

Instance details

Defined in Graphics.Color.Space.RGB.AdobeRGB

Methods

showsPrec :: Int -> Color (AdobeRGB l) e -> ShowS #

show :: Color (AdobeRGB l) e -> String #

showList :: [Color (AdobeRGB l) e] -> ShowS #

Storable e => Storable (Color (AdobeRGB l) e) Source #

AdobeRGB color space

Instance details

Defined in Graphics.Color.Space.RGB.AdobeRGB

Methods

sizeOf :: Color (AdobeRGB l) e -> Int #

alignment :: Color (AdobeRGB l) e -> Int #

peekElemOff :: Ptr (Color (AdobeRGB l) e) -> Int -> IO (Color (AdobeRGB l) e) #

pokeElemOff :: Ptr (Color (AdobeRGB l) e) -> Int -> Color (AdobeRGB l) e -> IO () #

peekByteOff :: Ptr b -> Int -> IO (Color (AdobeRGB l) e) #

pokeByteOff :: Ptr b -> Int -> Color (AdobeRGB l) e -> IO () #

peek :: Ptr (Color (AdobeRGB l) e) -> IO (Color (AdobeRGB l) e) #

poke :: Ptr (Color (AdobeRGB l) e) -> Color (AdobeRGB l) e -> IO () #

newtype Color (AdobeRGB l) e Source # 
Instance details

Defined in Graphics.Color.Space.RGB.AdobeRGB

newtype Color (AdobeRGB l) e = AdobeRGB (Color RGB e)
type BaseModel (AdobeRGB Linear) Source # 
Instance details

Defined in Graphics.Color.Space.RGB.AdobeRGB

type BaseModel (AdobeRGB NonLinear) Source # 
Instance details

Defined in Graphics.Color.Space.RGB.AdobeRGB

type BaseSpace (AdobeRGB Linear) Source # 
Instance details

Defined in Graphics.Color.Space.RGB.AdobeRGB

type BaseSpace (AdobeRGB NonLinear) Source # 
Instance details

Defined in Graphics.Color.Space.RGB.AdobeRGB

type Components (AdobeRGB l) e Source # 
Instance details

Defined in Graphics.Color.Space.RGB.AdobeRGB

type Components (AdobeRGB l) e = (e, e, e)
type BaseModel (CMYK (AdobeRGB l)) Source # 
Instance details

Defined in Graphics.Color.Space.RGB.Alternative.CMYK

type BaseSpace (CMYK (AdobeRGB l)) Source # 
Instance details

Defined in Graphics.Color.Space.RGB.Alternative.CMYK

Luma

rgbPixelLuma :: forall cs i e' e. (Luma cs, RedGreenBlue cs i, Elevator e', Elevator e, RealFloat e) => Pixel (cs NonLinear) e' -> Pixel Y' e Source #

Convert an RGB pixel to Y' if it has the weights specified with Luma.

Since: 0.1.4

Re-export of color space