annotate sat/tools/common/utils.py @ 3178:98b321234068

plugin aesgcm: use 12 bytes Initialisation Vector: SàT was using 16 bytes IV when sending files withr AES-GCM, due to ChatSecure being only compatible with that. Monal, an other iOS client is only compatible with 12 bytes IV, and ChatSecure has fixed its code to also handle 12 bytes IV, so there is not reason anymore to use 16 bytes, and SàT now uses 12 bytes.
author Goffi <goffi@goffi.org>
date Tue, 18 Feb 2020 18:17:18 +0100
parents 9d0df638c8b4
children 1649bbe8d07e
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
3136
9d0df638c8b4 dates update
Goffi <goffi@goffi.org>
parents: 3045
diff changeset
4 # Copyright (C) 2009-2020 Jérôme Poisson (goffi@goffi.org)
3045
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