diff options
author | Caleb Noelke <cjn075@sheriffmediocre.xyz> | 2022-03-15 14:44:28 -0400 |
---|---|---|
committer | Caleb Noelke <cjn075@sheriffmediocre.xyz> | 2022-03-15 14:44:28 -0400 |
commit | 80a1507ccd557db0701a211ef121be28fad37965 (patch) | |
tree | dbec2fca2a0fd02187eff2c11bf0b677bc756c8b /pywal/backends/fast_colorthief.py | |
parent | e136433ceadc567b5e84325ede6749314feffd5a (diff) | |
parent | 236aa48e741ff8d65c4c3826db2813bf2ee6f352 (diff) |
merge
Diffstat (limited to 'pywal/backends/fast_colorthief.py')
-rw-r--r-- | pywal/backends/fast_colorthief.py | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/pywal/backends/fast_colorthief.py b/pywal/backends/fast_colorthief.py new file mode 100644 index 0000000..b68ff02 --- /dev/null +++ b/pywal/backends/fast_colorthief.py @@ -0,0 +1,50 @@ +""" +Generate a colorscheme using fast_colorthief. +""" +import logging +import sys + +try: + import fast_colorthief + +except ImportError: + logging.error("fast_colorthief wasn't found on your system.") + logging.error("Try another backend. (wal --backend)") + sys.exit(1) + +from .. import util + + +def gen_colors(img): + """ Ask backend to generate 16 colors. """ + raw_colors = fast_colorthief.get_palette(img, 16) + + return [util.rgb_to_hex(color) for color in raw_colors] + + +def adjust(cols, light): + """Create palette.""" + cols.sort(key=util.rgb_to_yiq) + raw_colors = [*cols, *cols] + + if light: + raw_colors[0] = util.lighten_color(cols[0], 0.90) + raw_colors[7] = util.darken_color(cols[0], 0.75) + + else: + for color in raw_colors: + color = util.lighten_color(color, 0.40) + + raw_colors[0] = util.darken_color(cols[0], 0.80) + raw_colors[7] = util.lighten_color(cols[0], 0.60) + + raw_colors[8] = util.lighten_color(cols[0], 0.20) + raw_colors[15] = raw_colors[7] + + return raw_colors + + +def get(img, light=False): + """Get colorscheme.""" + cols = gen_colors(img) + return adjust(cols, light) |