diff options
| author | Dylan Araps <dylan.araps@gmail.com> | 2018-05-31 07:15:58 +1000 |
|---|---|---|
| committer | Dylan Araps <dylan.araps@gmail.com> | 2018-05-31 07:15:58 +1000 |
| commit | 22a2618c21792c7e8af83abb7ec33b11d572b821 (patch) | |
| tree | e0e6e38ca600813cd590b3d0f94efdaea5ac0ce0 /pywal/backends | |
| parent | 1ef4c742a2c0ed35a408501a73a20ae184f90d22 (diff) | |
backend: Import colorz instead of running it as a subprocess.
Diffstat (limited to 'pywal/backends')
| -rw-r--r-- | pywal/backends/colorz.py | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/pywal/backends/colorz.py b/pywal/backends/colorz.py index 642ff6b..3c5dfe3 100644 --- a/pywal/backends/colorz.py +++ b/pywal/backends/colorz.py @@ -6,14 +6,22 @@ import shutil import subprocess import sys +try: + import colorz + +except ImportError: + logging.error("colorz wasn't found on your system.") + logging.error("Try another backend. (wal --backend)") + sys.exit(1) + from .. import colors from .. import util def gen_colors(img): """Generate a colorscheme using Colorz.""" - cmd = ["colorz", "-n", "6", "--bold", "0", "--no-preview", "--no-bg-img"] - return subprocess.check_output([*cmd, img]).splitlines() + raw_colors = colorz.colorz(img, n=6, bold_add=0) + return [util.rgb_to_hex([*color[0]]) for color in raw_colors] def adjust(cols, light): @@ -28,10 +36,11 @@ def adjust(cols, light): def get(img, light=False): """Get colorscheme.""" - if not shutil.which("colorz"): - logging.error("Colorz wasn't found on your system.") - logging.error("Try another backend. (wal --backend)") + cols = gen_colors(img) + + if len(cols) < 6: + logging.error("colorz failed to generate enough colors.") + logging.error("Try another backend or another image. (wal --backend)") sys.exit(1) - cols = [col.decode('UTF-8').split()[0] for col in gen_colors(img)] return adjust(cols, light) |
