我已经使用 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')