15#include <boost/operators.hpp>
28 inline double computeC(
double c) {
return c <= 0.03928 ?
c / 12.92 : pow((
c + 0.055) / 1.055, 2.4); }
35 :
public boost::addable<Color>
36 ,
public boost::multiplicative<Color, double>
49 Color(
double red_,
double green_,
double blue_,
double alpha_ = 1.0)
58 explicit Color(
double gray,
double alpha_ = 1.0)
93 [[nodiscard]] std::string
getHex()
const
97 ss << std::hex << std::setfill(
'0');
125 return Color(L > 0.179 ? 0 : 1);
std::shared_ptr< A > a
Definition async-deleter-tests.cc:60
Blob::Ptr const b
Definition blob-tests.cc:118
double green
Definition color.hh:41
std::string getHex() const
Definition color.hh:93
double blue
Definition color.hh:42
Color & operator/=(double d)
Definition color.hh:75
double red
Definition color.hh:40
Color & setAlpha(double alpha_)
Definition color.hh:128
Color getContrastingBlackOrWhite() const
Definition color.hh:121
uint32_t getARGB32() const
Definition color.hh:112
Color(double gray, double alpha_=1.0)
Definition color.hh:58
void setColor(cairo_t *cr) const
Definition color.hh:117
Color setAlpha(double alpha_) const
Definition color.hh:130
double alpha
Definition color.hh:39
Color & operator*=(double d)
Definition color.hh:84
uint32_t getRGB24() const
Definition color.hh:107
Color(double red_, double green_, double blue_, double alpha_=1.0)
Definition color.hh:49
Color & operator+=(const Color &rhs)
Definition color.hh:66
GdkColor getGdkColor() const
Definition color.hh:119
uint16_t shortFromDouble(double d)
Definition color.hh:23
uint8_t byteFromDouble(double d)
Definition color.hh:21
double doubleFromByte(uint8_t b)
Definition color.hh:22
Color mix(const Color &a, const Color &b, double alpha)
Definition color.hh:133
double computeC(double c)
Definition color.hh:28