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