Python PPTX выровнять изображение по центру слайда

Мне нужно добавить изображение в слайд pptx и расположить его в центре слайда без необходимости вручную вычислять размер и выравнивание,

Я нашел вопрос об этом с текстом: вопрос о выравнивании текста по центру

И документация об этом с текстом: документация о выравнивании текста по центру

Но не могу найти способ сделать это для изображения,

Идеи?

1 ответ

Решение

Это не будет работать так же, как текст; на изображении отсутствует выравнивание по центру или свойство выравнивания. Вам нужно будет использовать формулу.

image.left = (prs.slide_width - image.width) / 2

Ответ 13.08.2020

Вот что сработало для меня:

from pptx import Presentation
from pptx.util import Inches
from PIL import Image


# instantiate presentation
prs = Presentation()

# change slide sizes to Widescreen
slide_size = (16, 9)
prs.slide_width, prs.slide_height = Inches(slide_size[0]), Inches(slide_size[1])

# convert pixels to inches
def px_to_inches(path):
    
    im = Image.open(path)
    width = im.width / im.info['dpi'][0]
    height = im.height / im.info['dpi'][1]
    
    return (width, height)

img = px_to_inches('logo.png')

# insert logo image
left = Inches(slide_size[0] - img[0]) / 2
top = Inches(slide_size[1] - img[1]) / 2
pic = slide.shapes.add_picture('logo.png', left, top)
Другие вопросы по тегам