View Source Tint (Tint v1.2.0)
A library allowing calculations with colors and conversions between different colorspaces.
Summary
Functions
Converts the given color to another colorspace.
Converts the given color to another colorspace. Raises when the colorspace is invalid.
Gets the converted module for the given colorspace atom or module.
Converts the given color to the CMYK colorspace.
Converts the given color to the DIN99 colorspace.
Converts the given color to the HSV colorspace.
Converts the given color to the CIELAB colorspace.
Converts the given color to the RGB colorspace.
Converts the given color to the XYZ (CIE 1931) colorspace.
Types
@type color() :: Tint.CMYK.t() | Tint.DIN99.t() | Tint.HSV.t() | Tint.Lab.t() | Tint.RGB.t() | Tint.XYZ.t()
A type representing a color.
A type representing a colorspace.
Functions
@spec convert(color(), colorspace()) :: {:ok, color()} | :error
Converts the given color to another colorspace.
Examples
iex> Tint.convert(Tint.RGB.new(40, 66, 67), :cmyk)
{:ok, %Tint.CMYK{cyan: 0.403, magenta: 0.0149, yellow: 0.0, key: 0.7373}}
iex> Tint.convert(Tint.RGB.new(255, 127, 30), Tint.HSV)
{:ok, %Tint.HSV{hue: 25.9, saturation: 0.8824, value: 1.0}}
iex> Tint.convert(Tint.RGB.new(255, 127, 30), :invalid)
:error
@spec convert!(color(), colorspace()) :: color()
Converts the given color to another colorspace. Raises when the colorspace is invalid.
Examples
iex> Tint.convert!(Tint.RGB.new(40, 66, 67), :cmyk)
%Tint.CMYK{cyan: 0.403, magenta: 0.0149, yellow: 0.0, key: 0.7373}
iex> Tint.convert!(Tint.RGB.new(255, 127, 30), Tint.HSV)
%Tint.HSV{hue: 25.9, saturation: 0.8824, value: 1.0}
iex> Tint.convert!(Tint.RGB.new(255, 127, 30), :foo)
** (ArgumentError) Unknown colorspace: :foo
@spec converter_for(colorspace()) :: {:ok, module()} | :error
Gets the converted module for the given colorspace atom or module.
@spec to_cmyk(color()) :: Tint.CMYK.t()
Converts the given color to the CMYK colorspace.
Example
iex> Tint.to_cmyk(Tint.RGB.new(40, 66, 67))
#Tint.CMYK<40.3%,1.49%,0.0%,73.73%>
@spec to_din99(color()) :: Tint.DIN99.t()
Converts the given color to the DIN99 colorspace.
@spec to_hsv(color()) :: Tint.HSV.t()
Converts the given color to the HSV colorspace.
Example
iex> Tint.to_hsv(Tint.RGB.new(255, 127, 30))
#Tint.HSV<25.9°,88.24%,100.0%>
@spec to_lab(color()) :: Tint.Lab.t()
Converts the given color to the CIELAB colorspace.
@spec to_rgb(color()) :: Tint.RGB.t()
Converts the given color to the RGB colorspace.
Example
iex> Tint.to_rgb(Tint.HSV.new(25.8, 0.882, 1))
#Tint.RGB<255,127,30 (#FF7F1E)>
@spec to_xyz(color()) :: Tint.XYZ.t()
Converts the given color to the XYZ (CIE 1931) colorspace.