Python PIL.Image.tobytes() 给出图像的无效字节

Python PIL.Image.tobytes() gives invalid bytes for image

当我运行这个枕头码:

from PIL import Image

image = Image.open(BytesIO(some_bytes))
resized = image.resize((44, 44))
with open('filename.png', 'wb') as file:
    file.write(resized.tobytes())

没有发生错误,但是当我转到文件 'filename.png' 时,我的计算机或任何其他软件无法显示该文件,可能是因为字节无效。为什么会这样?

resized.tobytes() 好像是return 字节,不知道为什么图片的字节是无效的。当我将我的正常字节写入 filename.png 时它起作用了,所以这不是无效的。只有调整大小的是。

为什么会这样,我该如何解决?

Jason Yang 在评论中回答 -

Method Image.tobytes returns the raw image data from the internal storage. For compressed image data (e.g. PNG, JPEG) use save(), with a BytesIO parameter for in-memory data.