У меня есть this image размером 128 x 128 пикселей и RGBA, хранящиеся в памяти как значения байтов. НоОткрытое изображение PIL из файла байта
from PIL import Image
image_data = ... # byte values of the image
image = Image.frombytes('RGBA', (128,128), image_data)
image.show()
бросает исключение
ValueError: not enough image data
Почему? Что я делаю не так?
необработанных данных в '. png' имеет заголовки и сжатие и прочее, поэтому я не думаю, что вы можете прокормить его в 'frombytes' и получить согласованный результат. – Kevin
Как я могу избавиться от этого? –
Я думаю, вы могли бы открыть изображение с помощью Image.open ("homer.jpg") ', а затем называть' tobytes' на нем, чтобы получить буфер, подходящий для перехода в 'frombytes' ... Но не так много смысла в делаю 'image = Image.frombytes (Image.open (" homer.jpg "). tobytes())', когда вы можете просто сделать 'image = Image.open (" homer.jpg ")'. Я предполагаю, что ваш фактический прецедент более сложный, и вы не можете сделать последнее по какой-то причине. – Kevin