9

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')
4

2 回答 2

12

的参数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))
于 2017-05-31T04:18:46.420 回答
5

看起来,文档中的细节不知何故被丽莎指出了,我很高兴你指出了这一点。

示例中没有出现宽度和高度的原因是因为它们是可选的。如果未提供,则以“原始”(完整)大小插入图片。

可能更常见的是只提供这两个中的一个,然后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 英寸,就会出现这种情况。

如果您知道希望它显示多高并且不想大惊小怪地计算出比例宽度,那么仅指定高度也是同样的事情。

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

于 2017-05-31T05:53:18.793 回答