Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- data Colour
- pattern Colour :: Double -> Double -> Double -> Double -> Colour
- opac :: Colour -> Double
- setOpac :: Double -> Colour -> Colour
- fromRGB :: Color RGB Double -> Double -> Colour
- hex :: Colour -> Text
- palette :: [Color RGB Double]
- palette1 :: [Colour]
- blend :: Double -> Colour -> Colour -> Colour
- toHex :: Colour -> Text
- fromHex :: Text -> Either Text (Color RGB Double)
- unsafeFromHex :: Text -> Color RGB Double
- grayscale :: Double -> Color RGB Double
- colorText :: Colour
- transparent :: Colour
- black :: Colour
- white :: Colour
- data Word
- data Word8
- data Word16
- data Word32
- data Word64
- byteSwap16 :: Word16 -> Word16
- byteSwap32 :: Word32 -> Word32
- byteSwap64 :: Word64 -> Word64
- ycbcr2rgb :: (Elevator e', Elevator e, RealFloat e) => Color YCbCr e' -> Weights e -> Color RGB e
- rgb2ycbcr :: (Elevator e', Elevator e, RealFloat e) => Color RGB e' -> Weights e -> Color YCbCr e
- pattern ColorYCbCr :: forall e. e -> e -> e -> Color YCbCr e
- pattern ColorYCbCrA :: forall e. e -> e -> e -> e -> Color (Alpha YCbCr) e
- data YCbCr
- rgb2y :: (Elevator e', Elevator e, RealFloat e) => Color RGB e' -> Weights e -> Color Y e
- pattern ColorY :: forall e. e -> Color Y e
- pattern ColorYA :: forall e. e -> e -> Color (Alpha Y) e
- data Y
- newtype Weights e = Weights {}
- rgb2cmyk :: (RealFloat e, Elevator e) => Color RGB e -> Color CMYK e
- cmyk2rgb :: (RealFloat e, Elevator e) => Color CMYK e -> Color RGB e
- pattern ColorCMYKA :: forall e. e -> e -> e -> e -> e -> Color (Alpha CMYK) e
- data CMYK
- rgb2hsi :: RealFloat e => Color RGB e -> Color HSI e
- hsi2rgb :: (Ord e, Floating e) => Color HSI e -> Color RGB e
- pattern ColorHSI :: forall e. e -> e -> e -> Color HSI e
- pattern ColorHSIA :: forall e. e -> e -> e -> e -> Color (Alpha HSI) e
- pattern ColorH360SI :: forall e. Fractional e => e -> e -> e -> Color HSI e
- data HSI
- rgb2hsl :: (Ord e, Floating e) => Color RGB e -> Color HSL e
- hsl2rgb :: RealFrac e => Color HSL e -> Color RGB e
- pattern ColorHSL :: forall e. e -> e -> e -> Color HSL e
- pattern ColorHSLA :: forall e. e -> e -> e -> e -> Color (Alpha HSL) e
- pattern ColorH360SL :: forall e. Fractional e => e -> e -> e -> Color HSL e
- data HSL
- rgb2hsv :: (Ord e, Fractional e) => Color RGB e -> Color HSV e
- hsv2rgb :: RealFrac e => Color HSV e -> Color RGB e
- hc2rgb :: RealFrac e => e -> e -> Color RGB e
- pattern ColorHSV :: forall e. e -> e -> e -> Color HSV e
- pattern ColorHSVA :: forall e. e -> e -> e -> e -> Color (Alpha HSV) e
- pattern ColorH360SV :: forall e. Fractional e => e -> e -> e -> Color HSV e
- data HSV
- pattern ColorRGB :: forall e. e -> e -> e -> Color RGB e
- pattern ColorRGBA :: forall e. e -> e -> e -> e -> Color (Alpha RGB) e
- data RGB
- modifyOpaque :: (Color cs e -> Color cs' e) -> Color (Alpha cs) e -> Color (Alpha cs') e
- setAlpha :: Color (Alpha cs) e -> e -> Color (Alpha cs) e
- addAlpha :: Color cs e -> e -> Color (Alpha cs) e
- dropAlpha :: Color (Alpha cs) e -> Color cs e
- getAlpha :: Color (Alpha cs) e -> e
- data family Color cs e :: Type
- class (Functor (Color cs), Applicative (Color cs), Foldable (Color cs), Traversable (Color cs), Eq (Color cs e), Show (Color cs e), Unbox (Components cs e), Storable (Color cs e), Typeable cs, Elevator e, Typeable (Opaque cs)) => ColorModel cs e where
- type Components cs e :: Type
- toComponents :: Color cs e -> Components cs e
- fromComponents :: Components cs e -> Color cs e
- showsColorModelName :: Proxy (Color cs e) -> ShowS
- data Alpha cs
- type family Opaque cs :: Type where ...
- fromNum :: (Eq a, Num a) => a -> Bit
- toNum :: Num a => Bit -> a
- fromBool :: Bool -> Bit
- toBool :: Bit -> Bool
- data Bit
- clamp01 :: RealFloat a => a -> a
- class (Show e, Eq e, Num e, Typeable e, Unbox e, Storable e) => Elevator e where
- maxValue :: e
- minValue :: e
- fieldFormat :: e -> FieldFormat
- toShowS :: e -> ShowS
- toWord8 :: e -> Word8
- toWord16 :: e -> Word16
- toWord32 :: e -> Word32
- toWord64 :: e -> Word64
- fromRealFloat :: (Elevator a, RealFloat a) => a -> e
- toFloat :: e -> Float
- toDouble :: e -> Double
- fromDouble :: Double -> e
- (//) :: e -> e -> e
Documentation
snatching Colour as the library color representation.
transparent :: Colour Source #
re-exports
Instances
8-bit unsigned integer type
Instances
16-bit unsigned integer type
Instances
32-bit unsigned integer type
Instances
64-bit unsigned integer type
Instances
byteSwap16 :: Word16 -> Word16 #
Swap bytes in Word16
.
Since: base-4.7.0.0
byteSwap32 :: Word32 -> Word32 #
Reverse order of bytes in Word32
.
Since: base-4.7.0.0
byteSwap64 :: Word64 -> Word64 #
Reverse order of bytes in Word64
.
Since: base-4.7.0.0
pattern ColorYCbCr :: forall e. e -> e -> e -> Color YCbCr e #
Constructor for an RGB color model in an alternative YCbCr color model
pattern ColorYCbCrA :: forall e. e -> e -> e -> e -> Color (Alpha YCbCr) e #
Constructor for YCbCr
with alpha channel.
YCbCr
color model
Instances
Luminance of a color
Instances
Elevator e => ColorModel Y e |
|
Defined in Graphics.Color.Model.Y type Components Y e :: Type # toComponents :: Color Y e -> Components Y e # fromComponents :: Components Y e -> Color Y e # | |
Functor (Color Y) |
|
Applicative (Color Y) |
|
Foldable (Color Y) |
|
Defined in Graphics.Color.Model.Y 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 # elem :: Eq a => a -> Color Y a -> Bool # maximum :: Ord a => Color Y a -> a # minimum :: Ord a => Color Y a -> a # | |
Traversable (Color Y) |
|
Eq e => Eq (Color Y e) |
|
Ord e => Ord (Color Y e) |
|
Defined in Graphics.Color.Model.Y | |
Elevator e => Show (Color Y e) |
|
Storable e => Storable (Color Y e) |
|
Defined in Graphics.Color.Model.Y | |
newtype Color Y e | Luminance |
Defined in Graphics.Color.Model.Y | |
type Components Y e | |
Defined in Graphics.Color.Model.Y |
Instances
Functor Weights | |
Eq e => Eq (Weights e) | |
Floating e => Floating (Weights e) | |
Defined in Graphics.Color.Model.Y 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 # | |
Fractional e => Fractional (Weights e) | |
Num e => Num (Weights e) | |
Defined in Graphics.Color.Model.Y | |
Elevator e => Show (Weights e) | |
pattern ColorCMYKA :: forall e. e -> e -> e -> e -> e -> Color (Alpha CMYK) e #
Constructor for CMYK
with alpha channel.
Instances
pattern ColorHSIA :: forall e. e -> e -> e -> e -> Color (Alpha HSI) e #
Constructor for HSI
with alpha channel.
pattern ColorH360SI :: forall e. Fractional e => e -> e -> e -> Color HSI e #
Hue, Saturation and Intensity color model.
Instances
pattern ColorHSLA :: forall e. e -> e -> e -> e -> Color (Alpha HSL) e #
Constructor for HSL
with alpha channel.
pattern ColorH360SL :: forall e. Fractional e => e -> e -> e -> Color HSL e #
Hue, Saturation and Luminance (Lightness) color model.
Instances
pattern ColorHSVA :: forall e. e -> e -> e -> e -> Color (Alpha HSV) e #
Constructor for HSV
with alpha channel.
pattern ColorH360SV :: forall e. Fractional e => e -> e -> e -> Color HSV e #
Hue, Saturation and Value (Brightness) color model.
Instances
pattern ColorRGBA :: forall e. e -> e -> e -> e -> Color (Alpha RGB) e #
Constructor for RGB
with alpha channel.
The most common RGB
color model
Instances
modifyOpaque :: (Color cs e -> Color cs' e) -> Color (Alpha cs) e -> Color (Alpha cs') e #
Change the opaque pixel value, while leaving alpha channel intact.
Since: Color-0.1.0
setAlpha :: Color (Alpha cs) e -> e -> Color (Alpha cs) e #
Change the alpha channel value for the pixel
Since: Color-0.1.0
addAlpha :: Color cs e -> e -> Color (Alpha cs) e #
Add an alpha channel value to an opaque pixel
Since: Color-0.1.0
dropAlpha :: Color (Alpha cs) e -> Color cs e #
Get the opaque pixel value, while leaving alpha channel intact.
Since: Color-0.1.0
data family Color cs e :: Type #
A Color family with a color space and a precision of elements.
Instances
class (Functor (Color cs), Applicative (Color cs), Foldable (Color cs), Traversable (Color cs), Eq (Color cs e), Show (Color cs e), Unbox (Components cs e), Storable (Color cs e), Typeable cs, Elevator e, Typeable (Opaque cs)) => ColorModel cs e where #
type Components cs e :: Type #
toComponents :: Color cs e -> Components cs e #
Convert a Color to a representation suitable for storage as an unboxed element, usually a tuple of channels.
fromComponents :: Components cs e -> Color cs e #
Convert from an elemnt representation back to a Color.
showsColorModelName :: Proxy (Color cs e) -> ShowS #
Display the cs
portion of the pixel. Color itself will not be evaluated.
Since: Color-0.1.0
Instances
Instances
Functor (Color cs) => Functor (Color (Alpha cs)) | |
Applicative (Color cs) => Applicative (Color (Alpha cs)) | |
Defined in Graphics.Color.Model.Internal pure :: a -> Color (Alpha cs) a # (<*>) :: Color (Alpha cs) (a -> b) -> Color (Alpha cs) a -> Color (Alpha cs) b # liftA2 :: (a -> b -> c) -> Color (Alpha cs) a -> Color (Alpha cs) b -> Color (Alpha cs) c # (*>) :: Color (Alpha cs) a -> Color (Alpha cs) b -> Color (Alpha cs) b # (<*) :: Color (Alpha cs) a -> Color (Alpha cs) b -> Color (Alpha cs) a # | |
Foldable (Color cs) => Foldable (Color (Alpha cs)) | |
Defined in Graphics.Color.Model.Internal fold :: Monoid m => Color (Alpha cs) m -> m # foldMap :: Monoid m => (a -> m) -> Color (Alpha cs) a -> m # foldr :: (a -> b -> b) -> b -> Color (Alpha cs) a -> b # foldr' :: (a -> b -> b) -> b -> Color (Alpha cs) a -> b # foldl :: (b -> a -> b) -> b -> Color (Alpha cs) a -> b # foldl' :: (b -> a -> b) -> b -> Color (Alpha cs) a -> b # foldr1 :: (a -> a -> a) -> Color (Alpha cs) a -> a # foldl1 :: (a -> a -> a) -> Color (Alpha cs) a -> a # toList :: Color (Alpha cs) a -> [a] # null :: Color (Alpha cs) a -> Bool # length :: Color (Alpha cs) a -> Int # elem :: Eq a => a -> Color (Alpha cs) a -> Bool # maximum :: Ord a => Color (Alpha cs) a -> a # minimum :: Ord a => Color (Alpha cs) a -> a # | |
Traversable (Color cs) => Traversable (Color (Alpha cs)) | |
Defined in Graphics.Color.Model.Internal traverse :: Applicative f => (a -> f b) -> Color (Alpha cs) a -> f (Color (Alpha cs) b) # sequenceA :: Applicative f => Color (Alpha cs) (f a) -> f (Color (Alpha cs) a) # mapM :: Monad m => (a -> m b) -> Color (Alpha cs) a -> m (Color (Alpha cs) b) # sequence :: Monad m => Color (Alpha cs) (m a) -> m (Color (Alpha cs) a) # | |
(ColorModel cs e, cs ~ Opaque (Alpha cs)) => ColorModel (Alpha cs) e | |
Defined in Graphics.Color.Model.Internal type Components (Alpha cs) e :: Type # toComponents :: Color (Alpha cs) e -> Components (Alpha cs) e # fromComponents :: Components (Alpha cs) e -> Color (Alpha cs) e # showsColorModelName :: Proxy (Color (Alpha cs) e) -> ShowS # | |
(Eq (Color cs e), Eq e) => Eq (Color (Alpha cs) e) | |
(ColorModel cs e, cs ~ Opaque (Alpha cs)) => Show (Color (Alpha cs) e) | |
(Storable (Color cs e), Storable e) => Storable (Color (Alpha cs) e) | |
Defined in Graphics.Color.Model.Internal sizeOf :: Color (Alpha cs) e -> Int # alignment :: Color (Alpha cs) e -> Int # peekElemOff :: Ptr (Color (Alpha cs) e) -> Int -> IO (Color (Alpha cs) e) # pokeElemOff :: Ptr (Color (Alpha cs) e) -> Int -> Color (Alpha cs) e -> IO () # peekByteOff :: Ptr b -> Int -> IO (Color (Alpha cs) e) # pokeByteOff :: Ptr b -> Int -> Color (Alpha cs) e -> IO () # peek :: Ptr (Color (Alpha cs) e) -> IO (Color (Alpha cs) e) # poke :: Ptr (Color (Alpha cs) e) -> Color (Alpha cs) e -> IO () # | |
data Color (Alpha cs) e | |
type Components (Alpha cs) e | |
Defined in Graphics.Color.Model.Internal |
fromNum :: (Eq a, Num a) => a -> Bit #
Convert a number to a bit. Any non-zero number corresponds to 1
.
Since: Color-0.1.0
Under the hood, binary pixels are backed by Word8
, but can only take
values of 0
or 1
. Use zero
/one
to construct a bit and on
/off
to
construct a binary pixel.
Instances
class (Show e, Eq e, Num e, Typeable e, Unbox e, Storable e) => Elevator e where #
A class with a set of functions that allow for changing precision by shrinking and streatching the values.
fieldFormat :: e -> FieldFormat #
This is a pretty printer for the value.
Values are scaled to [0, 255]
range.
Values are scaled to [0, 65535]
range.
Values are scaled to [0, 4294967295]
range.
Values are scaled to [0, 18446744073709551615]
range.
fromRealFloat :: (Elevator a, RealFloat a) => a -> e #
Values are scaled from [0.0, 1.0]
range.
Values are scaled to [0.0, 1.0]
range.
Values are scaled to [0.0, 1.0]
range.
fromDouble :: Double -> e #
Values are scaled from [0.0, 1.0]
range.
(//) :: e -> e -> e infixl 7 #
Division that works for integral types as well as floating points. May throw an exception.