如何使用 Python Pillow 在不保存中间文件的情况下显示 Matplotlib 生成的图片?

如何使用 python pillow 在不保存中间文件的情况下显示 matplotlib 生成的图片?

如何在 python pillow 中显示 matplotlib 生成的图片,而无需生成中间文件

python 中,通常通过存储中间图片文件来保存 matplotlib 生成的图片。然而,有时我们可能希望直接在应用程序中显示图片,而不需要保存中间文件。

问题:

在下图中,我们使用 matplotlib 生成了中间文件 test12.png。如何避免生成中间文件并直接在 python 应用程序中显示图片?

回答:

python 中的文件类型具有“鸭子类型”特性,这意味着它们以其属性而不是其类来定义。我们可以利用这一点来模拟一个文件对象,并直接将其传递给 pillow 的图像显示函数。以下代码展示了如何实现此操作:

import matplotlib.pyplot as plt
from io import BytesIO

# 生成 Matplotlib 图像
fig, ax = plt.subplots()
ax.plot([1, 2, 3], [4, 5, 6])

# 将图像保存到内存中
buf = BytesIO()
fig.savefig(buf, format="png")
buf.seek(0)

# 使用 Pillow 显示图像
from PIL import Image
Image.open(buf).show()

使用此代码,我们可以直接在应用程序中显示 matplotlib 生成的图片,而无需创建或保存中间文件。

以上就是如何使用 Python Pillow 在不保存中间文件的情况下显示 Matplotlib 生成的图片?的详细内容,更多请关注其它相关文章!