2016-09-12 7 views
1

Я пытаюсь получить изображение из буфера обмена, и я хочу добавить это изображение в python-pptx. Я не хочу сохранять изображение на диске. Я попытался это:Как передать изображение PIL в Add_Picture в python-pptx

from pptx import Presentation 
from PIL import ImageGrab,Image 
from pptx.util import Inches 
im = ImageGrab.grabclipboard() 
prs = Presentation() 
title_slide_layout = prs.slide_layouts[0] 
slide = prs.slides.add_slide(title_slide_layout) 
left = top = Inches(1) 
pic = slide.shapes.add_picture(im, left, top) 
prs.save('PPT.pptx') 

Но получаю эту ошибку

File "C:\Python27\lib\site-packages\PIL\Image.py", line 627, in __getattr__ 
    raise AttributeError(name) 
AttributeError: read 

Что не так с этим?

ответ

0

Изображение должно быть в виде объекта потока (то есть логического файла). Поэтому сначала вам нужно «сохранить» его в файл памяти, возможно, StringIO - это то, что вы ищете.

This other question содержит некоторые детали.