aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/plugins/image.py18
1 files changed, 17 insertions, 1 deletions
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