KGuiAddons 5.109.0
|
A set of methods used to work with colors. More...
Functions | |
qreal | chroma (const QColor &) |
Calculate the chroma of a color. | |
qreal | contrastRatio (const QColor &, const QColor &) |
Calculate the contrast ratio between two colors, according to the W3C/WCAG2.0 algorithm, (Lmax + 0.05)/(Lmin + 0.05), where Lmax and Lmin are the luma values of the lighter color and the darker color, respectively. | |
QColor | darken (const QColor &, qreal amount=0.5, qreal chromaGain=1.0) |
Adjust the luma of a color by changing its distance from black. | |
void | getHcy (const QColor &, qreal *hue, qreal *chroma, qreal *luma, qreal *alpha=nullptr) |
Calculate hue, chroma and luma of a color in one call. | |
QColor | hcyColor (qreal hue, qreal chroma, qreal luma, qreal alpha=1.0) |
Return a QColor based on the given hue, chroma, luma and alpha values. | |
qreal | hue (const QColor &) |
Calculate the hue of a color. | |
QColor | lighten (const QColor &, qreal amount=0.5, qreal chromaInverseGain=1.0) |
Adjust the luma of a color by changing its distance from white. | |
qreal | luma (const QColor &) |
Calculate the luma of a color. | |
QColor | mix (const QColor &c1, const QColor &c2, qreal bias=0.5) |
Blend two colors into a new color by linear combination. | |
QColor | overlayColors (const QColor &base, const QColor &paint, QPainter::CompositionMode comp=QPainter::CompositionMode_SourceOver) |
Blend two colors into a new color by painting the second color over the first using the specified composition mode. | |
QColor | shade (const QColor &, qreal lumaAmount, qreal chromaAmount=0.0) |
Adjust the luma and chroma components of a color. | |
QColor | tint (const QColor &base, const QColor &color, qreal amount=0.3) |
Create a new color by tinting one color with another. | |
A set of methods used to work with colors.
qreal KColorUtils::chroma | ( | const QColor & | ) |
Calculate the chroma of a color.
The range is from 0.0 (none) to 1.0 (full).
The result is computed in linear (not sRGB) color space.
qreal KColorUtils::contrastRatio | ( | const QColor & | , |
const QColor & | |||
) |
Calculate the contrast ratio between two colors, according to the W3C/WCAG2.0 algorithm, (Lmax + 0.05)/(Lmin + 0.05), where Lmax and Lmin are the luma values of the lighter color and the darker color, respectively.
A contrast ration of 5:1 (result == 5.0) is the minimum for "normal" text to be considered readable (large text can go as low as 3:1). The ratio ranges from 1:1 (result == 1.0) to 21:1 (result == 21.0).
QColor KColorUtils::darken | ( | const QColor & | , |
qreal | amount = 0.5 , |
||
qreal | chromaGain = 1.0 |
||
) |
Adjust the luma of a color by changing its distance from black.
amount | factor by which to adjust the luma component of the color |
chromaGain | (optional) factor by which to adjust the chroma component of the color; 1.0 means no change, 0.0 minimizes chroma |
void KColorUtils::getHcy | ( | const QColor & | , |
qreal * | hue, | ||
qreal * | chroma, | ||
qreal * | luma, | ||
qreal * | alpha = nullptr |
||
) |
Calculate hue, chroma and luma of a color in one call.
The range of hue is from 0.0 (red) to almost 1.0 (slightly blue-ish red). The range of chroma is from 0.0 (none) to 1.0 (full). The range of luma is from 0.0 (black) to 1.0 (white).
The hue, chroma and luma values are computed in linear (not sRGB) color space.
QColor KColorUtils::hcyColor | ( | qreal | hue, |
qreal | chroma, | ||
qreal | luma, | ||
qreal | alpha = 1.0 |
||
) |
Return a QColor based on the given hue, chroma, luma and alpha values.
The range of hue is cyclical. For example, 0.0 and 1.0 are both red while -0.166667 and 0.833333 are both magenta. The range of chroma is from 0.0 (none) to 1.0 (full). Out of range values will be clamped. The range of luma is from 0.0 (black) to 1.0 (white). Out of range values will be clamped.
The hue, chroma and luma values are computed in linear (not sRGB) color space.
qreal KColorUtils::hue | ( | const QColor & | ) |
Calculate the hue of a color.
The range is from 0.0 (red) to almost 1.0 (slightly blue-ish red).
The result is computed in linear (not sRGB) color space and may differ slightly from QColor::hue().
QColor KColorUtils::lighten | ( | const QColor & | , |
qreal | amount = 0.5 , |
||
qreal | chromaInverseGain = 1.0 |
||
) |
Adjust the luma of a color by changing its distance from white.
amount | factor by which to adjust the luma component of the color |
chromaInverseGain | (optional) factor by which to adjust the chroma component of the color; 1.0 means no change, 0.0 maximizes chroma |
qreal KColorUtils::luma | ( | const QColor & | ) |
Calculate the luma of a color.
Luma is weighted sum of gamma-adjusted R'G'B' components of a color. The result is similar to qGray. The range is from 0.0 (black) to 1.0 (white).
The result is computed in linear (not sRGB) color space.
KColorUtils::darken(), KColorUtils::lighten() and KColorUtils::shade() operate on the luma of a color.
QColor KColorUtils::mix | ( | const QColor & | c1, |
const QColor & | c2, | ||
qreal | bias = 0.5 |
||
) |
Blend two colors into a new color by linear combination.
c1 | first color. |
c2 | second color. |
bias | weight to be used for the mix. bias <= 0 gives c1 , bias >= 1 gives c2 . bias == 0.5 gives a 50% blend of c1 and c2 . |
QColor KColorUtils::overlayColors | ( | const QColor & | base, |
const QColor & | paint, | ||
QPainter::CompositionMode | comp = QPainter::CompositionMode_SourceOver |
||
) |
Blend two colors into a new color by painting the second color over the first using the specified composition mode.
base | the base color (alpha channel is ignored). |
paint | the color to be overlaid onto the base color. |
comp | the CompositionMode used to do the blending. |
QColor KColorUtils::shade | ( | const QColor & | , |
qreal | lumaAmount, | ||
qreal | chromaAmount = 0.0 |
||
) |
Adjust the luma and chroma components of a color.
The amount is added to the corresponding component.
lumaAmount | amount by which to adjust the luma component of the color; 0.0 results in no change, -1.0 turns anything black, 1.0 turns anything white |
chromaAmount | (optional) amount by which to adjust the chroma component of the color; 0.0 results in no change, -1.0 minimizes chroma, 1.0 maximizes chroma |
QColor KColorUtils::tint | ( | const QColor & | base, |
const QColor & | color, | ||
qreal | amount = 0.3 |
||
) |
Create a new color by tinting one color with another.
This function is meant for creating additional colors withings the same class (background, foreground) from colors in a different class. Therefore when amount
is low, the luma of base
is mostly preserved, while the hue and chroma of color
is mostly inherited.
base | color to be tinted |
color | color with which to tint |
amount | how strongly to tint the base; 0.0 gives base , 1.0 gives color |