插入幻灯片后如何使用python-pptx裁剪图像?



我已经使用 python-pptx 将图像插入到 pptx 中。

我的问题是:插入图像后如何裁剪(不调整比例(。 假设将顶部裁剪 1 英寸,将底部裁剪 2 英寸。

我的原始代码如下。想知道如何根据我的代码修改代码吗?

from pptx import Presentation 
from pptx.util import Inches
img_paths = ['abc.png']

prs = Presentation() 
prs.slide_width = Inches(15)
prs.slide_height = Inches(9)
blank_slide_layout = prs.slide_layouts[0] 

slide = prs.slides.add_slide(blank_slide_layout)

left = Inches(0)
top = Inches(1)
pic = slide.shapes.add_picture(img, left, top, Inches(15))    

prs.save('test.pptx')

您可以使用picture.crop_*方法裁剪图片。文档可在此处找到:

https://python-pptx.readthedocs.io/en/latest/api/shapes.html#picture-objects

但是,裁剪方法占要裁剪的总图像的百分比,并且您说要指定英寸。为此,我们必须计算要删除的百分比。这样:

from pptx import Presentation 
from pptx.util import Inches
img_paths = ['abc.png']

prs = Presentation() 
prs.slide_width = Inches(15)
prs.slide_height = Inches(9)
blank_slide_layout = prs.slide_layouts[0] 

slide = prs.slides.add_slide(blank_slide_layout)

left = Inches(0)
top = Inches(1)
pic = slide.shapes.add_picture(img, left, top, Inches(15))    
crop_top_in = Inches(1)
crop_bottom_in = Inches(2)
pic.crop_top = crop_top_in / pic.height.inches
pic.crop_bottom = crop_bottom_in / pic.height.inches
prs.save('test.pptx')

最新更新