Color-0.1.3: 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.Color.Space.RGB.SRGB

Contents

Description

 
Synopsis

Constructors for a sRGB color space.

pattern SRGB :: Color RGB e -> Color SRGB e Source #

pattern ColorSRGB :: e -> e -> e -> Color SRGB e Source #

Constructor for a color in sRGB color space

Since: 0.1.0

pattern ColorSRGBA :: e -> e -> e -> e -> Color (Alpha SRGB) e Source #

Constructor for a color in sRGB color space with alphs channel

Since: 0.1.0

data SRGB 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

Elevator e => ColorModel SRGB e Source #

sRGB color space

Instance details

Defined in Graphics.Color.Space.RGB.SRGB

Associated Types

type Components SRGB e :: Type Source #

Functor (Color SRGB) Source #

sRGB color space

Instance details

Defined in Graphics.Color.Space.RGB.SRGB

Methods

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

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

Applicative (Color SRGB) Source #

sRGB color space

Instance details

Defined in Graphics.Color.Space.RGB.SRGB

Methods

pure :: a -> Color SRGB a #

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

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

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

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

Foldable (Color SRGB) Source #

sRGB color space

Instance details

Defined in Graphics.Color.Space.RGB.SRGB

Methods

fold :: Monoid m => Color SRGB m -> m #

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

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

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

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

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

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

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

toList :: Color SRGB a -> [a] #

null :: Color SRGB a -> Bool #

length :: Color SRGB a -> Int #

elem :: Eq a => a -> Color SRGB a -> Bool #

maximum :: Ord a => Color SRGB a -> a #

minimum :: Ord a => Color SRGB a -> a #

sum :: Num a => Color SRGB a -> a #

product :: Num a => Color SRGB a -> a #

Traversable (Color SRGB) Source #

sRGB color space

Instance details

Defined in Graphics.Color.Space.RGB.SRGB

Methods

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

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

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

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

RedGreenBlue SRGB D65 Source #

sRGB color space

Instance details

Defined in Graphics.Color.Space.RGB.SRGB

Elevator e => ColorSpace SRGB D65 e Source #

sRGB color space

Instance details

Defined in Graphics.Color.Space.RGB.SRGB

Associated Types

type BaseModel SRGB :: Type Source #

type BaseSpace SRGB :: Type Source #

Elevator e => ColorSpace (YCbCr SRGB) 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) :: Type Source #

type BaseSpace (YCbCr SRGB) :: Type Source #

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

sRGB color space

Instance details

Defined in Graphics.Color.Space.RGB.SRGB

Methods

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

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

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

sRGB color space

Instance details

Defined in Graphics.Color.Space.RGB.SRGB

Methods

compare :: Color SRGB e -> Color SRGB e -> Ordering #

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

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

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

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

max :: Color SRGB e -> Color SRGB e -> Color SRGB e #

min :: Color SRGB e -> Color SRGB e -> Color SRGB e #

Elevator e => Show (Color SRGB e) Source #

sRGB color space

Instance details

Defined in Graphics.Color.Space.RGB.SRGB

Methods

showsPrec :: Int -> Color SRGB e -> ShowS #

show :: Color SRGB e -> String #

showList :: [Color SRGB e] -> ShowS #

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

sRGB color space

Instance details

Defined in Graphics.Color.Space.RGB.SRGB

Methods

sizeOf :: Color SRGB e -> Int #

alignment :: Color SRGB e -> Int #

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

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

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

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

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

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

newtype Color SRGB e Source # 
Instance details

Defined in Graphics.Color.Space.RGB.SRGB

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

Defined in Graphics.Color.Space.RGB.SRGB

type BaseSpace SRGB Source # 
Instance details

Defined in Graphics.Color.Space.RGB.SRGB

type Components SRGB e Source # 
Instance details

Defined in Graphics.Color.Space.RGB.SRGB

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

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

type BaseSpace (YCbCr SRGB) Source # 
Instance details

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

data D50 Source #

This is an approximation of CIE1931 D50 white point defined in ICC PCS. Useful for chromatic adaptation.

>>> whitePoint :: WhitePoint D50 Double
WhitePoint (Chromaticity <CIExyY * D50:( 0.345702914919, 0.358538596680)>)
>>> whitePointTristimulus :: Color (XYZ D50) Float
<XYZ * D50:( 0.964200, 1.000000, 0.824900)>
>>> colorTemperature :: CCT D50
CCT {unCCT = 5003.0}

Since: 0.1.0

Instances
Illuminant D50 Source #

Tristimulus [X=0.9642, Y=1.0000, Z=0.8249] - IEC 61966-2-1:1999, ICC PCS

Instance details

Defined in Graphics.Color.Illuminant.ICC.PCS

Associated Types

type Temperature D50 :: n Source #

type Temperature D50 Source # 
Instance details

Defined in Graphics.Color.Illuminant.ICC.PCS

type Temperature D50 = 5003

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 <CIExyY * D65:( 0.312700, 0.329000)>)
>>> whitePointTristimulus :: Color (XYZ D65) Float
<XYZ * D65:( 0.950456, 1.000000, 1.089058)>
>>> 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 D65 e Source #

ITU-R BT.601 (625) color space

Instance details

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

Associated Types

type BaseModel BT601_625 :: Type Source #

type BaseSpace BT601_625 :: Type Source #

Elevator e => ColorSpace BT601_525 D65 e Source #

ITU-R BT.601 (525) color space

Instance details

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

Associated Types

type BaseModel BT601_525 :: Type Source #

type BaseSpace BT601_525 :: Type Source #

Elevator e => ColorSpace BT709 D65 e Source #

ITU-R BT.709 color space

Instance details

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

Associated Types

type BaseModel BT709 :: Type Source #

type BaseSpace BT709 :: Type Source #

Elevator e => ColorSpace AdobeRGB D65 e Source #

AdobeRGB color space

Instance details

Defined in Graphics.Color.Space.RGB.AdobeRGB

Associated Types

type BaseModel AdobeRGB :: Type Source #

type BaseSpace AdobeRGB :: Type Source #

Elevator e => ColorSpace SRGB D65 e Source #

sRGB color space

Instance details

Defined in Graphics.Color.Space.RGB.SRGB

Associated Types

type BaseModel SRGB :: Type Source #

type BaseSpace SRGB :: Type Source #

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

YCbCr representation for BT601_625 color space

Instance details

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

Associated Types

type BaseModel (YCbCr BT601_625) :: Type Source #

type BaseSpace (YCbCr BT601_625) :: Type Source #

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

YCbCr representation for BT601_525 color space

Instance details

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

Associated Types

type BaseModel (YCbCr BT601_525) :: Type Source #

type BaseSpace (YCbCr BT601_525) :: Type Source #

Elevator e => ColorSpace (YCbCr BT709) 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) :: Type Source #

type BaseSpace (YCbCr BT709) :: Type Source #

Elevator e => ColorSpace (YCbCr SRGB) 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) :: Type Source #

type BaseSpace (YCbCr SRGB) :: Type Source #

type Temperature D65 Source # 
Instance details

Defined in Graphics.Color.Illuminant.ITU.Rec601

type Temperature D65 = 6504

primaries :: RealFloat e => Gamut rgb i e Source #

Primaries for ITU-R BT.709, which are also the primaries for sRGB color space.

Since: 0.1.0

npmStandard :: RealFloat a => NPM SRGB a Source #

sRGB normalized primary matrix. This is a helper definition, use npm instead.

>>> :set -XDataKinds
>>> import Graphics.Color.Space.RGB
>>> npmStandard :: NPM SRGB Float
[ [ 0.412400, 0.357600, 0.180500 ]
, [ 0.212600, 0.715200, 0.072200 ]
, [ 0.019300, 0.119200, 0.950500 ] ]

Since: 0.1.0

inpmStandard :: RealFloat a => INPM SRGB a Source #

sRGB inverse normalized primary matrix. This is a helper definition, use inpm instead.

>>> :set -XDataKinds
>>> import Graphics.Color.Space.RGB
>>> inpmStandard :: INPM SRGB Float
[ [ 3.240600,-1.537200,-0.498600 ]
, [-0.968900, 1.875800, 0.041500 ]
, [ 0.055700,-0.204000, 1.057000 ] ]

Since: 0.1.0

transfer :: (Ord a, Floating a) => a -> a Source #

sRGB transfer function "gamma". This is a helper function, therefore ecctf should be used instead.

\[ \gamma(u) = \begin{cases} 12.92 u & u \leq 0.0031308 \\ 1.055 u^{1/2.4} - 0.055 & \text{otherwise} \end{cases} \]

Since: 0.1.0

itransfer :: (Ord a, Floating a) => a -> a Source #

sRGB inverse transfer function "gamma". This is a helper function, therefore dcctf should be used instead.

\[ \gamma^{-1}(u) = \begin{cases} u / 12.92 & u \leq 0.04045 \\ \left(\tfrac{u + 0.055}{1.055}\right)^{2.4} & \text{otherwise} \end{cases} \]

Since: 0.1.0