Fluid 1.3.0
Material Design for QtQuick and Qml
Loading...
Searching...
No Matches
color.cpp
Go to the documentation of this file.
1// SPDX-FileCopyrightText: 2018 Pier Luigi Fiorini <pierluigi.fiorini@gmail.com>
2// SPDX-License-Identifier: MPL-2.0
3
4#include "color.h"
5
6Color::Color(QObject *parent)
7 : QObject(parent)
8{
9}
10
11QColor Color::transparent(const QColor &color, qreal alpha)
12{
13 return QColor(color.red(), color.green(), color.blue(),
14 int(qBound<qreal>(0.0, alpha, 1.0) * 255));
15}
16
17QColor Color::blend(const QColor &color1, const QColor &color2, qreal alpha)
18{
19 QColor color;
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);
23 return transparent(color, alpha);
24}
25
26qreal Color::luminance(const QColor &color)
27{
28 return (color.redF() * 0.2126) + (color.greenF() * 0.7152) + (color.blueF() * 0.0722);
29}
30
31bool Color::isDarkColor(const QColor &color)
32{
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;
35}
36
37QColor Color::lightDark(const QColor &background, const QColor &lightColor, const QColor &darkColor)
38{
39 return isDarkColor(background) ? darkColor : lightColor;
40}
41
42Color *Color::create(QQmlEngine *engine, QJSEngine *jsEngine)
43{
44 Q_UNUSED(engine)
45 Q_UNUSED(jsEngine)
46
47 return new Color();
48}
Utility functions for colors.
Definition color.h:16
static Color * create(QQmlEngine *engine, QJSEngine *jsEngine)
Definition color.cpp:42
Q_INVOKABLE QColor blend(const QColor &color1, const QColor &color2, qreal alpha)
Definition color.cpp:17
Q_INVOKABLE qreal luminance(const QColor &color)
Definition color.cpp:26
Q_INVOKABLE QColor lightDark(const QColor &background, const QColor &lightColor, const QColor &darkColor)
Definition color.cpp:37
Q_INVOKABLE bool isDarkColor(const QColor &color)
Definition color.cpp:31
Color(QObject *parent=nullptr)
Definition color.cpp:6
Q_INVOKABLE QColor transparent(const QColor &color, qreal alpha)
Definition color.cpp:11