diff options
| author | dylan <dylan.araps@gmail.com> | 2021-09-09 06:15:02 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-09-09 06:15:02 +0300 |
| commit | 236aa48e741ff8d65c4c3826db2813bf2ee6f352 (patch) | |
| tree | 1e37fbf22f565d50105f5456c25df3872b1080f4 | |
| parent | 5d8f3e7ba1de0761766475eb0b2e6c7801e220e7 (diff) | |
| parent | db7ea3c039e5bc158bce448a11cf65a591ab8c32 (diff) | |
Merge pull request #628 from atagen/master
add fast_colorthief backend
| -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) |
