diff options
-rw-r--r-- | DEPENDENCIES | 3 | ||||
-rw-r--r-- | src/plugins/image.py | 18 |
2 files changed, 19 insertions, 2 deletions
diff --git a/DEPENDENCIES b/DEPENDENCIES index 441f2f0..0e629f6 100644 --- a/DEPENDENCIES +++ b/DEPENDENCIES @@ -18,7 +18,8 @@ OPTIONAL RUNTIME DEPENDENCIES: inotify-tools: for inotify support alarm: for limiting the time of a file search in locks findutils: for file search in locks - imagemagic: for image support + graphicsmagick: for image support + imagemagick: for image support (used if graphicmagick is not installed) file: for image support librsvg: for image support diff --git a/src/plugins/image.py b/src/plugins/image.py index 20511e5..5653ed7 100644 --- a/src/plugins/image.py +++ b/src/plugins/image.py @@ -71,7 +71,8 @@ class Image: if not convert.wait() == 0: raise Exception('Image could not be converted') - convert = ['convert', '-', '-background', background, '-alpha', 'remove', '-depth', '8'] + convert = ['gm'] if Image.have_graphicsmagick() else [] + convert += ['convert', '-', '-background', background, '-alpha', 'remove', '-depth', '8'] if width is not None: convert += ['-resize', '%ix%i!' % (width, height)] convert += ['ppm:-'] @@ -131,6 +132,21 @@ class Image: @staticmethod + def have_graphicsmagick(): + ''' + Figure out whether graphicsmagick is installed + + @return :bool Whether graphicsmagick is installed + ''' + import os + path = os.environ['PATH'] if 'PATH' in os.environ else '/usr/local/bin:/usr/bin:/bin'; + for p in [p + '/gm' for p in path.split(':') if not p == '']: + if os.access(p, os.X_OK): + return True + return False + + + @staticmethod def find_icon(name, width, height, preferences): ''' Find and image for in abstract icon |