Python / PIL:从Image对象获取相同的字节数据,因为它实例化了?

时间:2017-06-24 02:57:24

标签: python image byte python-imaging-library

使用PIL时,如果我在字节缓冲区中有图像数据,我可以按照以下步骤创建一个Image对象......

# Assume `bytedata` is a byte buffer that came
# from reading an image file, or perhaps from a
# decoded image file attachment from an email.
im = Image.open(io.BytesIO(bytedata))

但是,如果我执行以下操作,imagebytes总是与bytedata不同。它通常比bytedata ...

大得多
imagebytes = im.tobytes()

有没有办法从我以前用来实例化它的Image对象中提取完全相同的数据?

我知道我可以使用save方法将此数据写入临时文件,然后只读取该文件。但是,我想在内存中完成所有操作,没有任何文件IO。

当然,这是一个过于简化的例子。我通常不需要提取我刚才用于创建对象的相同数据。我正在寻找的是一种在我开始时提取相同的 格式 数据的方法,也许是在完成类似im.rotate(30)之后的事情,所以然后,我可以将该数据传递给其他例程,这些例程通常操作直接从图像文件读取或从电子邮件附件解码的字节数据。

我无法让它工作,所以我只是做了以下简单的测试。 beforeafter字节数组总是显着不同:

im = Image.open(io.BytesIO(before))
after = im.tobytes()

有什么方法可以让我从Image对象中获取数据吗?

提前致谢。

0 个答案:

没有答案