aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--DEPENDENCIES3
-rw-r--r--src/plugins/image.py18
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