python pptx 将图像对齐到幻灯片的中心
python pptx align image to center of slide
我需要将图像添加到 pptx 幻灯片,并希望将其定位在幻灯片的中心,而无需手动计算大小和对齐方式,
我发现了一个关于用文本这样做的问题:
以及有关使用文本执行此操作的文档:
documentation about center aligning text
但是找不到对图像进行处理的方法,
想法?
它不会像文本一样工作;图像上没有中心对齐或对齐 属性。您需要使用公式。
image.left = (prs.slide_width - image.width) / 2
2020 年 8 月 13 日回答
这对我有用:
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)
我需要将图像添加到 pptx 幻灯片,并希望将其定位在幻灯片的中心,而无需手动计算大小和对齐方式,
我发现了一个关于用文本这样做的问题:
以及有关使用文本执行此操作的文档: documentation about center aligning text
但是找不到对图像进行处理的方法,
想法?
它不会像文本一样工作;图像上没有中心对齐或对齐 属性。您需要使用公式。
image.left = (prs.slide_width - image.width) / 2
2020 年 8 月 13 日回答
这对我有用:
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)