(This solution is from the author himself. I have just moved it here.)
# This portion is part of my test code byteImgIO = io.BytesIO() byteImg = Image.open("some/location/to/a/file/in/my/directories.png") byteImg.save(byteImgIO, "PNG") byteImgIO.seek(0) byteImg = byteImgIO.read() # Non test code dataBytesIO = io.BytesIO(byteImg) Image.open(dataBytesIO)
The problem was with the way that
Image.tobytes()was returning the byte object. It appeared to be invalid data and the ‘encoding’ couldn’t be anything other than raw which still appeared to output wrong data since almost every byte appeared in the format
\xff\. However, saving the bytes via BytesIO and using the
.read() function to read the entire image gave the correct bytes that when needed later could actually be used.