擅长:python、mysql、java
<p>(这一解决办法来自作者本人。我刚把它搬到这里。)</p>
<p>解决方案:</p>
<pre><code># 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)
</code></pre>
<p>问题在于<code>Image.tobytes()</code>返回byte对象的方式。它似乎是无效数据,“编码”不能是原始数据以外的任何内容,因为几乎每个字节都是以<code>\xff\</code>格式出现的,而原始数据似乎仍然输出错误数据。但是,通过BytesIO保存字节,并使用<code>.read()</code>函数读取整个图像,得到了正确的字节,以后需要时可以实际使用。</p>