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()
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)
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