python-pptx去除形状默认的阴影

article/2025/7/2 19:56:49

文章目录

  • 效果
  • 原理
      • 1. 阴影继承机制解析
      • 2. XML层操作细节
      • 3. 注意事项
  • 扩展应用
      • 1. 批量去除阴影
      • 2. 复合效果控制


效果

在这里插入图片描述
右边这个是直接添加一个形状。可以看到它会默认被赋予一个阴影。

然而,这个东西在特定的场合,其实是我们所不需要的。

那怎么把这个阴影给消掉呢?

在这里插入图片描述
左边这个就是我们用代码实现的,没有阴影的效果。

怎么做到的呢?

咱直接给出代码:

from pptx.util import Inches, Pt
from pptx.enum.shapes import MSO_SHAPE
from pptx import Presentationprs = Presentation()slide_layout = prs.slide_layouts[0]
slide = prs.slides.add_slide(slide_layout)# 定义矩形的位置和尺寸(以英寸为单位)
left = Inches(1)
top = Inches(1)
width = Inches(3)
height = Inches(2)# 添加矩形
rectangle = slide.shapes.add_shape(MSO_SHAPE.RECTANGLE,left, top, width, height
)rectangle.shadow.inherit = Falseprs.save("example.pptx")

核心就是这句代码:

rectangle.shadow.inherit = False

原理

1. 阴影继承机制解析

  • 默认继承逻辑:PowerPoint形状的阴影效果继承自模板/主题的effectLst元素。当该XML元素不存在时,形状自动继承上级样式(返回inherit=True
  • 显式覆盖机制:通过rectangle.shadow.inherit = False强制创建空的effectLst元素,这会:
    • 中断样式继承链
    • 清空所有视觉效果(包括阴影/发光/反射等)
    • 使effectLst进入"显式定义"状态(此时inherit返回False)

2. XML层操作细节

<!-- 默认状态(无effectLst元素) -->
<p:spPr><!-- 继承主题效果 -->
</p:spPr><!-- 执行inherit=False后的状态 -->
<p:spPr><a:effectLst/>  <!-- 空效果列表 -->
</p:spPr>

该操作等效于在PPT界面中:
右键形状 → 设置形状格式 → 效果 → 阴影 → 无阴影

3. 注意事项

  • 副作用:该方法会同时移除其他视觉效果(如发光、柔化边缘等),如需保留其他效果需手动重建
  • 性能影响:频繁操作effectLst可能引发XML结构重排(类似DOM操作)
  • 样式恢复:设置inherit=True将删除effectLst元素,恢复继承关系

扩展应用

1. 批量去除阴影

for shape in slide.shapes:if shape.has_shadow:shape.shadow.inherit = False

2. 复合效果控制

# 单独关闭阴影但保留发光效果(需API支持)
shape.shadow.inherit = False
shape.glow.inherit = True  # 需要底层XML结构调整

特别提示:当前python-pptx API对effectLst的控制粒度较粗,精细控制建议直接操作shape._element的XML结构


http://www.hkcw.cn/article/BTaALhuEHD.shtml

相关文章

使用pydantic-i18n将fastapi的接口返回消息翻译成中文

使用fastapi时&#xff0c;发现接口报错的结果是英文的&#xff0c;自己的英语水平不太行&#xff0c;就想能不能翻译成中文&#xff0c;发现果然有办法。 先看结果&#xff1a; 实现方法&#xff1a; 参考链接pydantic-i18n PyPI 首先执行如下代码获取原有的英文翻译字典 …

说一说SAP系统从Non-Unicode到Unicode的演化

当前的 SAP 系统基本上都是 Unicode 系统。然而&#xff0c;在 SAP 的发展过程中&#xff0c;最初并不是 Unicode 系统&#xff0c;而是 Non-Unicode 系统。 1. 什么是 Non-Unicode 和 Unicode&#xff1f; Non-Unicode 系统&#xff1a; 在 Non-Unicode 系统中&#xff0c;字符…

特朗普马斯克发表“分手感言” 称赞成就与未来合作

5月30日,美国总统特朗普与美国企业家、政府效率部负责人埃隆马斯克在白宫召开新闻发布会。会上,特朗普对马斯克领导的“政府效率部”所取得的成绩表示赞赏,称该部门聘请了计算机领域的杰出人才。特朗普还提到,政府将致力于推动“政府效率部”削减政府开支政策的永久化。他指…

特朗普称将把进口钢铁关税提高至50% 加强行业保护

当地时间5月30日,美国总统特朗普宣布将进口钢铁的关税从25%提高至50%。美国白宫当天在社交媒体上发布公告,表示此举是为了进一步保护美国钢铁行业免受外国和不公平竞争的影响,并指出新的关税政策将从下周开始实施。特朗普曾于2月10日签署行政命令,对所有进口至美国的钢铁和…

警方:跳进兵马俑坑男子有精神疾病 警情通报发布

5月31日凌晨3点15分,新浪微博账号@平安临潼发布了一则警情通报。责任编辑:zhangxiaohua

5月全国各地经济社会发展观察 高质量发展新图景绘就

5月,万物繁茂。消费新动能持续涌动、夏粮生产力保丰收、就业岗位挖潜扩容、城市更新提升民生福祉……一派充满生机的高质量发展新图景在神州大地不断绘就。临近端午小长假,北京的宋女士这几天正忙着订火车票和酒店,准备利用假期去河南游玩。她说:“想去看石窟、吃水席,还要…

白皮精读:70页 2025 基于数据空间的金融数据可信流通研究报告【附全文阅读】

该报告聚焦金融数据可信流通&#xff0c;基于数据空间理念&#xff0c;分析全球及我国金融数据流通现状与挑战&#xff0c;提出包含典型场景、关键角色、流通模式及技术方案的可信流通框架&#xff0c;并通过中信银行、工银金租等多个实践案例验证其可行性。报告指出当前面临法…

【解决办法】Git报错error: src refspec main does not match any.

在命令行中使用 Git 进行 git push -u origin main 操作时遇到报错error: src refspec main does not match any。另一个错误信息是&#xff1a;error: failed to push some refs to https://github.com/xxx/xxx.git.这是在一个新设备操作时遇到的问题&#xff0c;之前没有注意…

聊聊在大模型推理强化学习中熵机制上的探索

原文首发&#xff1a;https://mp.weixin.qq.com/s/M-KqQWVI-Z7kYXvgD4WeHw 在RL训练LLM的过程中&#xff0c;普遍存在模型entropy迅速下降/性能迅速饱和的现象。这导致模型过度自信&#xff0c;进而削弱其探索能力&#xff0c;最终限制了性能的进一步提升。 我们通过广泛的实验…

基于地理特征金字塔的层次化AI定位方案:从人脑推理到卫星图谱的跨尺度匹配

基于地理特征金字塔的层次化AI定位方案&#xff1a;从人脑推理到卫星图谱的跨尺度匹配 一、仿生推理框架&#xff1a;从人脑定位逻辑到AI层次化建模 1.1 人类视觉定位的认知机制 神经科学研究表明&#xff0c;人类定位遵循"三级推理链"&#xff1a; 宏观特征锚定&…

马哈蒂尔:中国不会轻易被美国击败,或将成世界第一强国

马来西亚前总理马哈蒂尔5月30日在东京出席“日经新闻”主办的“亚洲的未来”年度论坛时发表讲话,表示中国不会轻易被美国击败,并且看起来将成为世界第一强国。他认为,鉴于美国日趋保守的政策取向,美国将无法阻止中国的发展势头。马哈蒂尔批评了特朗普的关税政策,称其让美国…

汽车价格战再起 20多万的车14万卖 真降价还是假套路?

近期,汽车市场出现了一系列低价促销活动,如吉利帝豪标价2.99万元、奇瑞瑞虎3x售价3.49万元以及比亚迪海豹直降5.3万元。这些价格吸引了大量关注,但背后隐藏着一些套路。比亚迪于5月23日推出“限时一口价”促销活动后,吉利、奇瑞和凯迪拉克等品牌迅速跟进。然而,记者在走访…

原县委书记花上千万建10个厕所被查 豪华公厕引争议

刚摘掉深度贫困县帽子的通榆县,时任县委书记李德明就斥资上千万元建造了10个豪华水冲公厕。日前,吉林省纪委监委公开通报了4起形式主义、官僚主义典型问题,其中提到李德明搞劳民伤财的“形象工程”。2023年,他升任省农业农村厅厅长,直至2025年1月主动投案。李德明主政的通…

UHF RFID无源标签的芯片供电原理

作为无源物联网技术中最基础的一环,UHF RFID无源标签已经被广泛用于商超零售、物流仓储、图书档案、防伪溯源等量非常大的应用领域,仅2021年度,全球出货量就超过200亿。在实际应用中UHF RFID无源标签的芯片是究竟依靠什么来供电的呢? UHF RFID无源标签供电特点 1.借助无线…

C++?多态!!!

一、引言 众所周知&#xff0c;C有三大特性&#xff0c;它们分别是封装、继承和多态&#xff0c;在之前的文章中已经详细介绍过封装和继承了&#xff0c;今天我们将一起学习多态相关的知识&#xff0c;如果还想了解封装、继承相关的知识&#xff0c;可以跳转到以下链接&#xf…

耿爽回应美方抹黑:完全不可接受 反对无端指责和政治操弄

中国常驻联合国副代表耿爽在安理会审议向乌克兰提供武器问题时发言指出,战场上武器数量不断增加只会加剧对抗、延长战火。自俄乌冲突爆发以来,中方一直呼吁冲突当事方尽快停火止战。遗憾的是,乌克兰危机仍在持续,平民伤亡人数不断增加,令人深感痛心和忧虑。在当前俄乌双方…

Assert failed in file queue.c, line 753

实在程序运行的时候出现的&#xff0c;根据提示找到相关的位置&#xff0c; 说明要操作的信号量还没被初始化&#xff08;注册&#xff09; &#xff0c;在抛信号量之前要使用sys_sem_new初始化一下。 如果出现这个问题&#xff0c;那么检查一下是不是忘了初始化。

著名物理学家汪承灏逝世 享年87岁贡献卓著

著名物理学家、中国科学院院士汪承灏研究员因病医治无效,于2025年5月29日在北京逝世,享年87岁。他曾担任政协北京市第十届委员会常务委员、中国科学院大学荣誉讲席教授及中国科学院声学研究所学术委员会原主任,并培养了众多博士生。汪承灏在功率超声、晶体声学、声表面波器件…

特朗普:特斯拉将在美国生产整车 必须在美国生产整车

5月30日,美国总统特朗普表示,美国汽车制造商必须在美国生产整车和所有零部件,而不是在国外生产。他提到,之前汽车制造商在加拿大、墨西哥、欧洲生产零部件,这让他感到困扰。特朗普强调,在接下来的一年里,这些汽车制造商需要在美国完成整车的生产。尽管特朗普有此要求,但…

马斯克:吃了儿子一拳,意外淤青引发猜测

5月30日,马斯克出现在白宫椭圆形办公室与美国总统特朗普的告别会上,眼角淤青引起外界猜测。马斯克解释说,这是他的儿子玩耍时打在他脸上的结果。他提到当时和儿子开玩笑,让儿子朝他脸上打一拳,没想到五岁的孩子也能造成这样的伤害。马斯克表示当时没觉得怎么样,但之后就出…