Mam this image o rozmiarze 128 x 128 pikseli i RGBA przechowywane jako wartości bajtów w mojej pamięci. AleOtwórz obraz PIL z pliku bajtowego
from PIL import Image
image_data = ... # byte values of the image
image = Image.frombytes('RGBA', (128,128), image_data)
image.show()
rzuca wyjątek
ValueError: not enough image data
Dlaczego? Co ja robię źle?
dane surowe w '. Plik png ma nagłówki i kompresję i inne rzeczy, więc nie sądzę, że możesz je wprowadzić do 'frombytes' i uzyskać spójny wynik. – Kevin
Jak się tego pozbyć? –
Myślę, że możesz otworzyć obrazek za pomocą 'Image.open (" homer.jpg ")', a następnie wywołać 'tobytes' na nim, aby uzyskać bufor odpowiedni do przekazania' frombytes' ... Ale nie ma sensu robienie 'image = Image.frombytes (Image.open (" homer.jpg "). tobytes())' gdy możesz po prostu zrobić 'image = Image.open (" homer.jpg ")'. Zakładam, że twój faktyczny przypadek użycia jest bardziej skomplikowany i nie możesz tego zrobić z jakiegoś powodu. – Kevin