13 return QColor(color.red(), color.green(), color.blue(),
14 int(qBound<qreal>(0.0, alpha, 1.0) * 255));
17QColor
Color::blend(
const QColor &color1,
const QColor &color2, qreal alpha)
20 color.setRedF(color1.redF() * 0.5 + color2.redF() * 0.5);
21 color.setGreenF(color1.greenF() * 0.5 + color2.greenF() * 0.5);
22 color.setBlueF(color1.blueF() * 0.5 + color2.blueF() * 0.5);
28 return (color.redF() * 0.2126) + (color.greenF() * 0.7152) + (color.blueF() * 0.0722);
33 auto a = 1.0 - (0.299 * color.redF() + 0.587 * color.greenF() + 0.114 * color.blueF());
34 return color.alphaF() > 0.0 && a >= 0.3;
37QColor
Color::lightDark(
const QColor &background,
const QColor &lightColor,
const QColor &darkColor)
39 return isDarkColor(background) ? darkColor : lightColor;
Utility functions for colors.
static Color * create(QQmlEngine *engine, QJSEngine *jsEngine)
Q_INVOKABLE QColor blend(const QColor &color1, const QColor &color2, qreal alpha)
Q_INVOKABLE qreal luminance(const QColor &color)
Q_INVOKABLE QColor lightDark(const QColor &background, const QColor &lightColor, const QColor &darkColor)
Q_INVOKABLE bool isDarkColor(const QColor &color)
Color(QObject *parent=nullptr)
Q_INVOKABLE QColor transparent(const QColor &color, qreal alpha)