如何用python删除PPT页面的logo图
从宣**网下载的党课PPT,每页都带有logo图案,一个一个删太麻烦了,就想用python来处理。搜索了网上的资料,有个思路:遍历页面上的shapes,发现尺寸符合的shape就使用shape.Delete()方法删除。
可是这样必须先确定每个PPT页面上logo图的height和width,不同PPT的logo尺寸还不一样,每次都要在python程序中调整。
还有一种是logo图在母版上,遍历shapes发现不了。
有没有更智能的方法,能自动判断删除呢? 换背景图呀或修改母版logo图案 import cv2
from pptx import Presentation
# 加载logo图案和PPT文件
logo = cv2.imread('logo.png', cv2.IMREAD_GRAYSCALE)
ppt = Presentation('example.pptx')
# 遍历PPT中的每一页
for slide in ppt.slides:
# 将当前页保存为图像文件
slide.shapes.image.save('temp.png')
# 加载当前页图像并进行模板匹配
img = cv2.imread('temp.png', cv2.IMREAD_GRAYSCALE)
result = cv2.matchTemplate(img, logo, cv2.TM_CCOEFF_NORMED)
# 如果当前页中包含logo,则删除该页
if (result >= 0.8).any():
ppt.slides.remove(slide)
# 保存修改后的PPT文件
ppt.save('modified.pptx')
xiaoboy 发表于 2023-4-30 10:21
import cv2
from pptx import Presentation
用cv库应该可以的 我现在用的是找height*10/width=3比例的图然后删除,可能会误删,用cv会更精准。
页:
[1]