Color-0.2.0: Color spaces and conversions between them

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

Graphics.Color.Space.RGB.Luma

Contents

Description

 
Synopsis

Luma

pattern Y' :: e -> Color Y' e Source #

Constructor for Luma Y'. (Not to be confused with luminance Y)

Since: 0.1.0

pattern Y'A :: e -> e -> Color (Alpha Y') e Source #

Constructor for Y' with alpha channel. (Not to be confused with luminance Y)

Since: 0.1.4

pattern Luma :: Color Y e -> Color Y' e Source #

data Y' Source #

Luma of a non-linear gamma corrected RGB color space. (Not to be confused with luminance Y)

Instances
Elevator e => ColorModel Y' e Source #

Y' - as a color model

Instance details

Defined in Graphics.Color.Space.RGB.Luma

Associated Types

type Components Y' e :: Type Source #

Functor (Color Y') Source #

Y' - luma of a color space

Instance details

Defined in Graphics.Color.Space.RGB.Luma

Methods

fmap :: (a -> b) -> Color Y' a -> Color Y' b #

(<$) :: a -> Color Y' b -> Color Y' a #

Applicative (Color Y') Source #

Y' - luma of a color space

Instance details

Defined in Graphics.Color.Space.RGB.Luma

Methods

pure :: a -> Color Y' a #

(<*>) :: Color Y' (a -> b) -> Color Y' a -> Color Y' b #

liftA2 :: (a -> b -> c) -> Color Y' a -> Color Y' b -> Color Y' c #

(*>) :: Color Y' a -> Color Y' b -> Color Y' b #

(<*) :: Color Y' a -> Color Y' b -> Color Y' a #

Foldable (Color Y') Source #

Y' - luma of a color space

Instance details

Defined in Graphics.Color.Space.RGB.Luma

Methods

fold :: Monoid m => Color Y' m -> m #

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

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

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

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

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

foldr1 :: (a -> a -> a) -> Color Y' a -> a #

foldl1 :: (a -> a -> a) -> Color Y' a -> a #

toList :: Color Y' a -> [a] #

null :: Color Y' a -> Bool #

length :: Color Y' a -> Int #

elem :: Eq a => a -> Color Y' a -> Bool #

maximum :: Ord a => Color Y' a -> a #

minimum :: Ord a => Color Y' a -> a #

sum :: Num a => Color Y' a -> a #

product :: Num a => Color Y' a -> a #

Traversable (Color Y') Source #

Y' - luma of a color space

Instance details

Defined in Graphics.Color.Space.RGB.Luma

Methods

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

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

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

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

Eq e => Eq (Color Y' e) Source #

Y' - luma of a color space

Instance details

Defined in Graphics.Color.Space.RGB.Luma

Methods

(==) :: Color Y' e -> Color Y' e -> Bool #

(/=) :: Color Y' e -> Color Y' e -> Bool #

Ord e => Ord (Color Y' e) Source #

Y' - luma of a color space

Instance details

Defined in Graphics.Color.Space.RGB.Luma

Methods

compare :: Color Y' e -> Color Y' e -> Ordering #

(<) :: Color Y' e -> Color Y' e -> Bool #

(<=) :: Color Y' e -> Color Y' e -> Bool #

(>) :: Color Y' e -> Color Y' e -> Bool #

(>=) :: Color Y' e -> Color Y' e -> Bool #

max :: Color Y' e -> Color Y' e -> Color Y' e #

min :: Color Y' e -> Color Y' e -> Color Y' e #

Elevator e => Show (Color Y' e) Source #

Y' - as a color model

Instance details

Defined in Graphics.Color.Space.RGB.Luma

Methods

showsPrec :: Int -> Color Y' e -> ShowS #

show :: Color Y' e -> String #

showList :: [Color Y' e] -> ShowS #

Storable e => Storable (Color Y' e) Source #

Y' - luma of a color space

Instance details

Defined in Graphics.Color.Space.RGB.Luma

Methods

sizeOf :: Color Y' e -> Int #

alignment :: Color Y' e -> Int #

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

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

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

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

peek :: Ptr (Color Y' e) -> IO (Color Y' e) #

poke :: Ptr (Color Y' e) -> Color Y' e -> IO () #

newtype Color Y' e Source #

Constructor for Luma.

Instance details

Defined in Graphics.Color.Space.RGB.Luma

newtype Color Y' e = Luma (Color Y e)
type Components Y' e Source # 
Instance details

Defined in Graphics.Color.Space.RGB.Luma

type Components Y' e = e

class Luma (cs :: Linearity -> Type) where Source #

Minimal complete definition

rWeight, gWeight | rWeight, bWeight | gWeight, bWeight

Methods

rWeight :: RealFloat e => Weight cs e Source #

gWeight :: RealFloat e => Weight cs e Source #

bWeight :: RealFloat e => Weight cs e Source #

newtype Weight cs e Source #

Constructors

Weight 

Fields

Instances
Functor (Weight cs) Source # 
Instance details

Defined in Graphics.Color.Space.RGB.Luma

Methods

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

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

Eq e => Eq (Weight cs e) Source # 
Instance details

Defined in Graphics.Color.Space.RGB.Luma

Methods

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

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

Floating e => Floating (Weight cs e) Source # 
Instance details

Defined in Graphics.Color.Space.RGB.Luma

Methods

pi :: Weight cs e #

exp :: Weight cs e -> Weight cs e #

log :: Weight cs e -> Weight cs e #

sqrt :: Weight cs e -> Weight cs e #

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

logBase :: Weight cs e -> Weight cs e -> Weight cs e #

sin :: Weight cs e -> Weight cs e #

cos :: Weight cs e -> Weight cs e #

tan :: Weight cs e -> Weight cs e #

asin :: Weight cs e -> Weight cs e #

acos :: Weight cs e -> Weight cs e #

atan :: Weight cs e -> Weight cs e #

sinh :: Weight cs e -> Weight cs e #

cosh :: Weight cs e -> Weight cs e #

tanh :: Weight cs e -> Weight cs e #

asinh :: Weight cs e -> Weight cs e #

acosh :: Weight cs e -> Weight cs e #

atanh :: Weight cs e -> Weight cs e #

log1p :: Weight cs e -> Weight cs e #

expm1 :: Weight cs e -> Weight cs e #

log1pexp :: Weight cs e -> Weight cs e #

log1mexp :: Weight cs e -> Weight cs e #

Fractional e => Fractional (Weight cs e) Source # 
Instance details

Defined in Graphics.Color.Space.RGB.Luma

Methods

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

recip :: Weight cs e -> Weight cs e #

fromRational :: Rational -> Weight cs e #

Num e => Num (Weight cs e) Source # 
Instance details

Defined in Graphics.Color.Space.RGB.Luma

Methods

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

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

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

negate :: Weight cs e -> Weight cs e #

abs :: Weight cs e -> Weight cs e #

signum :: Weight cs e -> Weight cs e #

fromInteger :: Integer -> Weight cs e #

Show e => Show (Weight cs e) Source # 
Instance details

Defined in Graphics.Color.Space.RGB.Luma

Methods

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

show :: Weight cs e -> String #

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

newtype Weights e Source #

Constructors

Weights 

Fields

Instances
Functor Weights Source # 
Instance details

Defined in Graphics.Color.Model.Y

Methods

fmap :: (a -> b) -> Weights a -> Weights b #

(<$) :: a -> Weights b -> Weights a #

Eq e => Eq (Weights e) Source # 
Instance details

Defined in Graphics.Color.Model.Y

Methods

(==) :: Weights e -> Weights e -> Bool #

(/=) :: Weights e -> Weights e -> Bool #

Floating e => Floating (Weights e) Source # 
Instance details

Defined in Graphics.Color.Model.Y

Methods

pi :: Weights e #

exp :: Weights e -> Weights e #

log :: Weights e -> Weights e #

sqrt :: Weights e -> Weights e #

(**) :: Weights e -> Weights e -> Weights e #

logBase :: Weights e -> Weights e -> Weights e #

sin :: Weights e -> Weights e #

cos :: Weights e -> Weights e #

tan :: Weights e -> Weights e #

asin :: Weights e -> Weights e #

acos :: Weights e -> Weights e #

atan :: Weights e -> Weights e #

sinh :: Weights e -> Weights e #

cosh :: Weights e -> Weights e #

tanh :: Weights e -> Weights e #

asinh :: Weights e -> Weights e #

acosh :: Weights e -> Weights e #

atanh :: Weights e -> Weights e #

log1p :: Weights e -> Weights e #

expm1 :: Weights e -> Weights e #

log1pexp :: Weights e -> Weights e #

log1mexp :: Weights e -> Weights e #

Fractional e => Fractional (Weights e) Source # 
Instance details

Defined in Graphics.Color.Model.Y

Methods

(/) :: Weights e -> Weights e -> Weights e #

recip :: Weights e -> Weights e #

fromRational :: Rational -> Weights e #

Num e => Num (Weights e) Source # 
Instance details

Defined in Graphics.Color.Model.Y

Methods

(+) :: Weights e -> Weights e -> Weights e #

(-) :: Weights e -> Weights e -> Weights e #

(*) :: Weights e -> Weights e -> Weights e #

negate :: Weights e -> Weights e #

abs :: Weights e -> Weights e #

signum :: Weights e -> Weights e #

fromInteger :: Integer -> Weights e #

Elevator e => Show (Weights e) Source # 
Instance details

Defined in Graphics.Color.Model.Y

Methods

showsPrec :: Int -> Weights e -> ShowS #

show :: Weights e -> String #

showList :: [Weights e] -> ShowS #

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

Convert a non-linear RGB pixel to a luma pixel

Since: 0.1.0

rgbLumaWeights :: forall cs e' e. (Luma cs, RealFloat e) => Color (cs NonLinear) e' -> Weights e Source #

Get the weights of a non-linear RGB color space that can be used for converting to Luma

Since: 0.1.4