annotate sat/tools/common/utils.py @ 3105:eec0c25c796b

core (memory/params): new "makeOptions" method to easily create options XML from a dict
author Goffi <goffi@goffi.org>
date Fri, 03 Jan 2020 13:20:45 +0100
parents 6af44ca3beac
children 9d0df638c8b4
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
3045
6af44ca3beac tools (common): helping method to calculate luminance:
Goffi <goffi@goffi.org>
parents:
diff changeset
1 #!/usr/bin/env python3
6af44ca3beac tools (common): helping method to calculate luminance:
Goffi <goffi@goffi.org>
parents:
diff changeset
2
6af44ca3beac tools (common): helping method to calculate luminance:
Goffi <goffi@goffi.org>
parents:
diff changeset
3 # SàT: a XMPP client
6af44ca3beac tools (common): helping method to calculate luminance:
Goffi <goffi@goffi.org>
parents:
diff changeset
4 # Copyright (C) 2009-2019 Jérôme Poisson (goffi@goffi.org)
6af44ca3beac tools (common): helping method to calculate luminance:
Goffi <goffi@goffi.org>
parents:
diff changeset
5
6af44ca3beac tools (common): helping method to calculate luminance:
Goffi <goffi@goffi.org>
parents:
diff changeset
6 # This program is free software: you can redistribute it and/or modify
6af44ca3beac tools (common): helping method to calculate luminance:
Goffi <goffi@goffi.org>
parents:
diff changeset
7 # it under the terms of the GNU Affero General Public License as published by
6af44ca3beac tools (common): helping method to calculate luminance:
Goffi <goffi@goffi.org>
parents:
diff changeset
8 # the Free Software Foundation, either version 3 of the License, or
6af44ca3beac tools (common): helping method to calculate luminance:
Goffi <goffi@goffi.org>
parents:
diff changeset
9 # (at your option) any later version.
6af44ca3beac tools (common): helping method to calculate luminance:
Goffi <goffi@goffi.org>
parents:
diff changeset
10
6af44ca3beac tools (common): helping method to calculate luminance:
Goffi <goffi@goffi.org>
parents:
diff changeset
11 # This program is distributed in the hope that it will be useful,
6af44ca3beac tools (common): helping method to calculate luminance:
Goffi <goffi@goffi.org>
parents:
diff changeset
12 # but WITHOUT ANY WARRANTY; without even the implied warranty of
6af44ca3beac tools (common): helping method to calculate luminance:
Goffi <goffi@goffi.org>
parents:
diff changeset
13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
6af44ca3beac tools (common): helping method to calculate luminance:
Goffi <goffi@goffi.org>
parents:
diff changeset
14 # GNU Affero General Public License for more details.
6af44ca3beac tools (common): helping method to calculate luminance:
Goffi <goffi@goffi.org>
parents:
diff changeset
15
6af44ca3beac tools (common): helping method to calculate luminance:
Goffi <goffi@goffi.org>
parents:
diff changeset
16 # You should have received a copy of the GNU Affero General Public License
6af44ca3beac tools (common): helping method to calculate luminance:
Goffi <goffi@goffi.org>
parents:
diff changeset
17 # along with this program. If not, see <http://www.gnu.org/licenses/>.
6af44ca3beac tools (common): helping method to calculate luminance:
Goffi <goffi@goffi.org>
parents:
diff changeset
18
6af44ca3beac tools (common): helping method to calculate luminance:
Goffi <goffi@goffi.org>
parents:
diff changeset
19 """Misc utils for both backend and frontends"""
6af44ca3beac tools (common): helping method to calculate luminance:
Goffi <goffi@goffi.org>
parents:
diff changeset
20
6af44ca3beac tools (common): helping method to calculate luminance:
Goffi <goffi@goffi.org>
parents:
diff changeset
21
6af44ca3beac tools (common): helping method to calculate luminance:
Goffi <goffi@goffi.org>
parents:
diff changeset
22 def per_luminance(red, green, blue):
6af44ca3beac tools (common): helping method to calculate luminance:
Goffi <goffi@goffi.org>
parents:
diff changeset
23 """Caculate the perceived luminance of a RGB color
6af44ca3beac tools (common): helping method to calculate luminance:
Goffi <goffi@goffi.org>
parents:
diff changeset
24
6af44ca3beac tools (common): helping method to calculate luminance:
Goffi <goffi@goffi.org>
parents:
diff changeset
25 @param red(int): 0-1 normalized value of red
6af44ca3beac tools (common): helping method to calculate luminance:
Goffi <goffi@goffi.org>
parents:
diff changeset
26 @param green(int): 0-1 normalized value of green
6af44ca3beac tools (common): helping method to calculate luminance:
Goffi <goffi@goffi.org>
parents:
diff changeset
27 @param blue(int): 0-1 normalized value of blue
6af44ca3beac tools (common): helping method to calculate luminance:
Goffi <goffi@goffi.org>
parents:
diff changeset
28 @return (float): 0-1 value of luminance (<0.5 is dark, else it's light)
6af44ca3beac tools (common): helping method to calculate luminance:
Goffi <goffi@goffi.org>
parents:
diff changeset
29 """
6af44ca3beac tools (common): helping method to calculate luminance:
Goffi <goffi@goffi.org>
parents:
diff changeset
30 # cf. https://stackoverflow.com/a/1855903, thanks Gacek
6af44ca3beac tools (common): helping method to calculate luminance:
Goffi <goffi@goffi.org>
parents:
diff changeset
31
6af44ca3beac tools (common): helping method to calculate luminance:
Goffi <goffi@goffi.org>
parents:
diff changeset
32 return 0.299 * red + 0.587 * green + 0.114 * blue