python将图片插入powerpoint,如何设置图片的宽度和高度?

时间:2017-05-31 04:05:20

标签: python powerpoint python-pptx

python-pptx包新手。 https://python-pptx.readthedocs.io/en/latest/ 想将图片插入powerpoint。 如何设置图片的宽度和高度?

我现在的代码:

from pptx import Presentation 
from pptx.util import Inches

img_path = 'monty-truth.png'

prs = Presentation() 
blank_slide_layout = prs.slide_layouts[6] 
slide = prs.slides.add_slide(blank_slide_layout)

left = top = Inches(1)
pic = slide.shapes.add_picture(img_path, left, top) 
prs.save('test.pptx')

2 个答案:

答案 0 :(得分:4)

add_picture的参数是:

add_picture(image_file, left, top, width=None, height=None)

要设置图片的宽度和高度,您只需要使用定义这些参数。在我的一个项目中,我通过以下设置获得了良好的图片高度和位置:

pic = slide.shapes.add_picture(img_path, pptx.util.Inches(0.5), pptx.util.Inches(1.75),
                               width=pptx.util.Inches(9), height=pptx.util.Inches(5))

答案 1 :(得分:1)

看起来那些细节已经从文档中掉了出来Lisa,我很高兴你指出了它。

宽度和高度不会出现在示例中的原因是因为它们是可选的。如果没有提供,则将图片插入其本地" (完整)尺寸。

更常见的是只提供这两个中的一个,然后python-pptx将为您做数学计算以使未指定的维度(例如将保留纵横比)。因此,如果您有一张大图片,比如4 x 5英寸,并希望将其缩小到1英寸宽,您可以致电:

from pptx.util import Inches

pic = shapes.add_picture(image_path, left, top, Inches(1))

并且图片的大小将为1 x 1.25(在这种情况下),而您无需确切知道原件的尺寸。保留纵横比可以使图片看起来不被拉伸,就像在这种情况下使用1 x 1英寸一样。

同样的事情只适用于指定高度,如果你知道你希望它出现多高,并且不想在计算比例宽度时大惊小怪。

如果同时指定宽度和高度,则表示您获得的尺寸,即使这意味着图像在此过程中会失真。