tutorial pil para python pillow

python - para - Abrir imagen PIL desde un archivo de bytes



pillow python tutorial (2)

Tengo esta imagen con un tamaño de 128 x 128 píxeles y RGBA almacenada como valores de bytes en mi memoria. Pero

from PIL import Image image_data = ... # byte values of the image image = Image.frombytes(''RGBA'', (128,128), image_data) image.show()

arroja la excepción

ValueError: no hay suficientes datos de imagen

¿Por qué? ¿Qué estoy haciendo mal?


Puedes probar esto:

image = Image.frombytes(''RGBA'', (128,128), image_data, ''raw'')

Código fuente:

def frombytes(mode, size, data, decoder_name="raw", *args): param mode: The image mode. param size: The image size. param data: A byte buffer containing raw data for the given mode. param decoder_name: What decoder to use.


La documentación de Image.open dice que puede aceptar un objeto similar a un archivo, por lo que debería poder pasar un objeto io.BytesIO creado a partir del objeto de bytes que contiene la imagen codificada:

from PIL import Image import io image_data = ... # byte values of the image image = Image.open(io.BytesIO(image_data)) image.show()