diff options
| -rw-r--r-- | DEPENDENCIES | 1 | ||||
| -rw-r--r-- | src/plugins/image.py | 34 | 
2 files changed, 13 insertions, 22 deletions
| diff --git a/DEPENDENCIES b/DEPENDENCIES index fc4e88c..73474a8 100644 --- a/DEPENDENCIES +++ b/DEPENDENCIES @@ -18,6 +18,7 @@ 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 +	graphicsmagick: for image support  	imagemagick: for image support  	file: for image support  	librsvg: for image support diff --git a/src/plugins/image.py b/src/plugins/image.py index 5653ed7..97ad7c0 100644 --- a/src/plugins/image.py +++ b/src/plugins/image.py @@ -71,20 +71,25 @@ class Image:              if not convert.wait() == 0:                  raise Exception('Image could not be converted') -        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:-'] +        convert = ['convert', '-', '-background', background, '-alpha', 'remove', '-depth', '8', 'ppm:-']          convert = Popen(convert, stdin = PIPE if raster is not None else open(file, 'rb'),                          stdout = PIPE, stderr = sys.stderr)          if raster is not None: -            self.data = list(convert.communicate(raster)[0]) +            self.data = convert.communicate(raster)[0]          else: -            self.data = list(convert.communicate()[0]) +            self.data = convert.communicate()[0]          if not convert.wait() == 0:              raise Exception('Image could not be converted') +        if width is not None: +            convert = ['gm', 'convert', '-', '-resize', '%ix%i!' % (width, height), 'ppm:-'] +            convert = Popen(convert, stdin = PIPE, stdout = PIPE, stderr = sys.stderr) +            self.data = convert.communicate(self.data)[0] +            if not convert.wait() == 0: +                raise Exception('Image could not be resized') +         +        self.data = list(self.data) +                  self.width, self.height, state, comment = [], [], 0, False          for i in range(len(self.data)):              b = self.data[i] @@ -132,21 +137,6 @@ 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 | 
