return PIL.Image.open(io.BytesIO(response.content)) else: return PIL.Image.open(image) if isinstance(image, Data): if not hasattr(image, 'pil'): image.add_attribute('pil', Image.as_pil(image.array)) return image.pil if not isinstance(image, np.ndarray): image = Image.as_array(image) if issubclass(image.dtype.type, float): image = (image * 255).astype('uint8') elif image.dtype != np.uint8: image = image.astype('uint8') return PIL.Image.fromarray(image, 'RGB') LOG.info("Adapting dltb.base.image.Image: adding static method 'as_pil'") Image.as_pil = staticmethod(as_pil) Imagesource.add_loader('pil', PIL.Image.open) Image.add_converter(PIL.Image.Image, lambda image, copy: (np.array(image), copy), target='array') Image.add_converter(np.ndarray, lambda image, copy: (as_pil(image, copy), copy), target='pil')