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

时间:2016-10-20 07:32:17

标签: 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:'图'对象没有属性'读'

如果我将图像保存到文件中,然后使用路径将其读取到pptx文件,代码完全相同,则代码可以正常工作。 adding image file to pptx file

我发现只有如何将图像文件添加到pptx,而没有关于从内存添加图像的内容。

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

谢谢!

1 个答案:

答案 0 :(得分:2)

您可以将其保存到内存中的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

这两个问题还有其他细节。