FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
ghostwriter/src/ColorHelper.h at dev · jackcoolpython/ghostwriter · GitHub
jackcoolpython
ghostwriter
Repository navigation
Code
Pull requests
Actions
Projects
Security and quality
Insights
Expand file tree
Breadcrumbs
ghostwriter
/
src
/
ColorHelper.h
Copy path
More file actions
More file actions
Latest commit
History
History
History
119 lines (109 loc) · 4.17 KB
Breadcrumbs
ghostwriter
/
src
/
ColorHelper.h
Copy path
File metadata and controls
119 lines (109 loc) · 4.17 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
/*
**********************************************************************
*
* Copyright (C) 2014, 2015 wereturtle
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
**********************************************************************
*/
#
ifndef
COLORHELPER_H
#
define
COLORHELPER_H
class
QColor
;
class
QString
;
/*
*
* Helper class for dealing with colors.
*/
class
ColorHelper
{
public:
/*
*
* Applies an alpha effect to the given foreground color against the
* given background color, returning a blend of the two colors. In
* other words, new color returned will have foreground color appearing
* to be transparent or semi-transparent as though it were colored
* on top of the background color. The alpha value used is from
* the foreground color's alpha() channel.
*/
static
QColor applyAlpha
(
const
QColor& foreground,
const
QColor& background
);
/*
*
* Applies an alpha effect to the given foreground color against the
* given background color, returning a blend of the two colors. In
* other words, new color returned will have foreground color appearing
* to be transparent or semi-transparent as though it were colored
* on top of the background color. The alpha value used is from
* the alpha parameter passed in, and will be applied to all channels.
*
* alpha parameter must be within the range of 0 to 255.
*/
static
QColor applyAlpha
(
const
QColor& foreground,
const
QColor& background,
int
alpha
);
/*
*
* Gets string representation of the given color in RGB format for
* use in style sheets.
*/
static
QString
toRgbString
(
const
QColor& color);
/*
*
* Gets string representation of the given color in RGBA format for
* use in style sheets.
*/
static
QString
toRgbaString
(
const
QColor& color);
/*
*
* Returns luminance of the given color on a scale of 0.0 (dark) to
* 1.0 (light). Luminance is based on how light or dark a color
* appears to the human eye.
*/
static
double
getLuminance
(
const
QColor& color);
/*
*
* Returns a new color based on the given foreground color,
* such that the new color is lightened to achieve the desired
* contrast ratio against the given background color.
*
* Note:
*
* This method assumes that the foreground color is darker
* than the background color. Passing in a foreground color
* that is lighter than the background color results in
* the original foreground color being returned.
*/
static
QColor lightenToMatchContrastRatio
(
const
QColor& foreground,
const
QColor& background,
double
contrastRatio
);
private:
/*
*
* Helper method for applying alpha value to a single color channel.
* It will return the new color channel value that results from
* applying the given alpha value to the given foreground channel
* value against the given background channel value.
*/
static
inline
int
applyAlphaToChannel
(
const
int
foreground,
const
int
background,
const
qreal alpha
)
{
return
(
int
) ((foreground * alpha) + (background * (
1.0
- alpha)));
}
};
#
endif
//
ALPHACOLOREFFECT_H
Back
|
FazBrowse Home
|
New Git URL