Ouvrir L'image PIL à partir du fichier byte
j'ai cette image avec la taille 128 x 128 pixels et RGBA stockés en tant que valeurs de byte dans ma mémoire. Mais
from PIL import Image
image_data = ... # byte values of the image
image = Image.frombytes('RGBA', (128,128), image_data)
image.show()
lance l'exception
ValueError: pas assez de données d'image
Pourquoi? Ce que je fais mal?
17
demandé sur
Michael Dorner
2015-10-02 16:47:35
2 réponses
la documentation pour Image.open
dit qu'il peut accepter un objet semblable à un fichier, donc vous devriez être capable de passer dans un io.BytesIO
objet créé à partir du bytes
objet contenant l'image encodée:
from PIL import Image
import io
image_data = ... # byte values of the image
image = Image.open(io.BytesIO(image_data))
image.show()
54
répondu
Colonel Thirty Two
2015-10-02 14:09:22
Vous pouvez essayer ceci:
image = Image.frombytes('RGBA', (128,128), image_data, 'raw')
Le Code Source: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.
4
répondu
Marvelous Jie
2018-04-25 16:16:02