Example #1
0
            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')