Exemplo n.º 1
0
 def loadFromFile(self, path, desired_size):
     # Set properties.
     self._path = path
     self._size = desired_size
     
     # Create the preview version if necessary.
     preview_path = path + '.preview'
     if os.path.exists(preview_path):
         self._preview = Image.open(preview_path)
     else:
         with open(path, 'r') as infile:
             original = infile.read()
         preview = scale(original, desired_size)
         if type(preview) == RemoteDataHandle:
             preview = Scavenger.fetch_data(preview)
         with open(preview_path, 'w') as outfile:
             outfile.write(preview)
         self._preview = Image.open(preview_path)
         
     # Load pixmap version.
     self._previewToPixmap()
Exemplo n.º 2
0
 def run(self):
     # Create an in-memory version of the image.
     sio = StringIO()
     self.image.save(sio, 'JPEG', quality=95)
     image_data = sio.getvalue()
     
     try:
         if self.op == 'sharpen':
             data_handle = imageops.sharpen(image_data)
             image_data = Scavenger.fetch_data(data_handle)
             sio = StringIO(image_data)
             new_image = Image.open(sio)
         elif self.op == 'blur':
             data_handle = imageops.blur(image_data)
             image_data = Scavenger.fetch_data(data_handle)
             sio = StringIO(image_data)
             new_image = Image.open(sio)
         elif self.op == 'color':
             data_handle = imageops.color(image_data, self.args)
             image_data = Scavenger.fetch_data(data_handle)
             sio = StringIO(image_data)
             new_image = Image.open(sio)
         elif self.op == 'brightness':
             data_handle = imageops.brightness(image_data, self.args)
             image_data = Scavenger.fetch_data(data_handle)
             sio = StringIO(image_data)
             new_image = Image.open(sio)
         elif self.op == 'contrast':
             data_handle = imageops.contrast(image_data, self.args)
             image_data = Scavenger.fetch_data(data_handle)
             sio = StringIO(image_data)
             new_image = Image.open(sio)
         elif self.op == 'invert':
             data_handle = imageops.invert(image_data)
             image_data = Scavenger.fetch_data(data_handle)
             sio = StringIO(image_data)
             new_image = Image.open(sio)
         else:
             raise Exception('Unknown operation "%s".'%self.op)
         self.callback(True, new_image)
     except Exception, e:
         print e
         self.callback(False, e)
Exemplo n.º 3
0
                self._image = fliphorizontal(self._image)
            except Exception, e:
                logger.error("Error performing horizontal flip.", exc_info=True)
                self._success = False

        elif self._operation == 'flipvertical':
            try:
                self._image = flipvertical(self._image)
            except Exception, e:
                logger.error("Error performing vertical flip.", exc_info=True)
                self._success = False
                
        # Fetch result data if necessary.
        if type(self._image) == RemoteDataHandle:
            try:
                self._image = Scavenger.fetch_data(self._image)
            except Exception, e:
                logger.error('Error fetching remote data handle.', exc_info=True)
                self._success = False
            
    def image(): #@NoSelf
        def fget(self):
            return self._image
        def fset(self, value):
            self._image = value
        def fdel(self):
            del self._image
        return locals()
    image = property(**image())

    def operation(): #@NoSelf