python pptx 添加没有图像文件的图像

标签 python python-2.7 python-pptx

我使用 python pptx 包(python 2.7)创建一个 pptx 文件

我在内存中有一个图像,是我使用 matplotlib 通过以下代码创建的:

import matplotlib.pyplot as plt

plt.clf()

plt.imshow(data, cmap='hot', interpolation='nearest')
plt.xlabel(x_l)
plt.ylabel(y_l)
plt.title(title)

x_values = range(len(times))

plt.xticks(x_values[::len(x_values)/24], range(24))

plt.yticks(range(len(dates)),dates)
plt.axes().set_aspect('auto')

return plt.gcf()

后来我尝试使用

将此图像添加到 pptx 文件中
pic = shapes.add_picture(image, left,top = top, width= width, height = height )

并出现以下错误: AttributeError:“Figure”对象没有属性“read”

如果我将图像保存到文件中,然后使用完全相同的代码将其读取到带有路径的 pptx 文件中,则该代码有效。 adding image file to pptx file

我只找到了如何将图像文件添加到 pptx,而没有找到有关从内存添加图像的信息。

我需要添加它而不将任何文件保存到磁盘。

谢谢!

最佳答案

您可以将其保存到内存中的 StringIO 流(“类似文件的对象”)并将 StringIO 对象提供给 python-pptx。

import StringIO

image_stream = StringIO.StringIO()
image.save(image_stream)
pic = shapes.add_picture(image_stream, left, top, width, height)
image_stream.close() # probably optional, but couldn't hurt

另外两个问题有更多详细信息。

关于python pptx 添加没有图像文件的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40148133/

相关文章:

python - Flask 上传照片类

python - 有没有一种干净的方法可以在 Python 中编写多行字符串?

python - 创建指向同一 PowerPoint 文档中其他幻灯片的超链接

python-pptx - 如何使用 python pptx 将自定义布局插入到 powerpoint

python-3.x - 使用 python-pptx 时如何获得组内形状的正确左侧位置?

javascript - 在 Python 中使用 java 脚本抓取网页

python - Django STATIC_URL 不起作用,不提供文件

python - 在 cygwin 中安装 scipy

Python:PIP 安装路径,这个和其他插件的正确位置是什么?

pdf - 如何在Python中读取pdf中的书签?