gpt4 book ai didi

python - 在不保存的情况下获取 PIL 图像的二进制表示

转载 作者:搜寻专家 更新时间:2023-10-31 23:17:48 24 4
gpt4 key购买 nike

我正在编写一个大量使用图像的应用程序。它由两部分组成。客户端部分是用 Python 编写的。它对图像进行一些预处理并通过 TCP 将它们发送到 Node.js 服务器。预处理后,Image 对象如下所示:

window = img.crop((x,y,width+x,height+y))
window = window.resize((48,48),Image.ANTIALIAS)

要通过套接字发送它,我必须以二进制格式发送它。我现在正在做的是:

window.save("window.jpg")
infile = open("window.jpg","rb")
encodedWindow = base64.b64encode(infile.read())
#Then send encodedWindow

不过,这是一个巨大的开销,因为我首先将图像保存到硬盘,然后再次加载它以获得二进制格式。这导致我的应用程序非常慢。我阅读了 PIL Image 的文档,但没有发现任何有用的东西。

最佳答案

根据文档,(位于 effbot.org):

“您可以使用文件对象代替文件名。在这种情况下,您必须始终指定格式。文件对象必须实现 seek、tell 和 write 方法,并以二进制模式打开。”

这意味着您可以传递一个 StringIO 对象。写入它并获取大小,而无需访问磁盘。

像这样:

s = StringIO.StringIO()
window.save(s, "jpg")
encodedWindow = base64.b64encode(s.getvalue())

关于python - 在不保存的情况下获取 PIL 图像的二进制表示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27652121/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com