Python вставляет картинки в PowerPoint, как установить ширину и высоту картинки?
Новое в пакете 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 ответа
Параметры 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))
Похоже, детали Лизы как-то выпали из документации, я рада, что вы на это указали.
Ширина и высота не указаны в примере, потому что они являются необязательными. Если не указано иное, изображение вставляется в "родном" (полном) размере.
Что может быть более распространенным, так это предоставить только один из этих двух, а затем 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 х 1 дюйм.
То же самое работает только с указанием высоты, если вы знаете, какой высоты вы хотите, чтобы она отображалась, и не хотите суетиться с разработкой пропорциональной ширины.
Если вы укажете ширину и высоту, это будет размер, который вы получите, даже если это означает, что изображение в процессе искажается.