python pptx 添加图片没有图片文件
python pptx add image without image file
我使用 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 流("file-like object")并将 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
另外两个问题有更多的细节。
- How to pass PIL image to Add_Picture in python-pptx
- Python PIL: how to write PNG image to string
我使用 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 流("file-like object")并将 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
另外两个问题有更多的细节。
- How to pass PIL image to Add_Picture in python-pptx
- Python PIL: how to write PNG image to string