1
0
Files
PPTX/openspec/changes/archive/2026-03-04-remove-image-fit-modes/proposal.md
lanyuanxiaoyao f34405be36 feat: 移除图片适配模式功能
移除图片 fit 和 background 参数支持,简化图片渲染逻辑。系统恢复到直接使用 python-pptx 原生图片添加功能,图片将被拉伸到指定尺寸。

变更内容:
- 移除 ImageElement 的 fit 和 background 字段
- 移除 metadata.dpi 配置
- 删除 utils/image_utils.py 图片处理工具模块
- 删除 validators/image_config.py 验证器
- 简化 PPTX 和 HTML 渲染器的图片处理逻辑
- HTML 渲染器使用硬编码 DPI=96(Web 标准)
- 删除相关测试文件(单元测试、集成测试、e2e 测试)
- 更新规格文档和用户文档
- 保留 Pillow 依赖用于未来可能的图片处理需求

影响:
- 删除 11 个文件
- 修改 10 个文件
- 净减少 1558 行代码
- 所有 402 个测试通过

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-03-04 14:23:12 +08:00

2.7 KiB
Raw Blame History

移除图片适配模式功能

Why

图片适配模式功能已实现但尚未上线使用,经过评估决定移除该功能以简化系统复杂度。移除后系统将恢复到更简单直接的图片渲染方式:直接使用 python-pptx 的原生图片添加功能,图片会被拉伸到指定尺寸。

What Changes

  • BREAKING 移除图片元素的 fit 参数stretch、contain、cover、center 四种模式)
  • BREAKING 移除图片元素的 background 参数(背景色填充)
  • BREAKING 移除文档级的 metadata.dpi 配置
  • BREAKING 删除 utils/image_utils.py 模块(图片处理工具)
  • BREAKING 删除 validators/image_config.py 模块(图片配置验证器)
  • 重写 renderers/pptx_renderer.py_render_image() 方法,恢复简单实现
  • 简化 renderers/html_renderer.pyrender_image() 方法,移除 fit/background 处理
  • 简化 core/elements.pyImageElement 类,移除 fit/background 字段
  • 简化 core/presentation.pyPresentation 类,移除 dpi 配置读取
  • 保留 Pillow 依赖(留作未来可能的其他用途)
  • HTML 渲染器使用硬编码的 DPI=96Web 标准,无需用户配置)

Capabilities

Modified Capabilities

  • element-rendering: 移除图片元素的 fit 和 background 参数支持,恢复到基础图片渲染
  • html-rendering: 移除图片元素的 fit 和 background 参数支持,简化 HTML 图片渲染

Impact

代码变更

  • core/elements.py: ImageElement 移除 fit 和 background 字段及验证逻辑
  • core/presentation.py: Presentation 移除 dpi 配置读取
  • renderers/pptx_renderer.py: 重写 _render_image() 方法,移除 Pillow 图片处理和 fit 模式逻辑
  • renderers/html_renderer.py: 简化 render_image() 方法,移除 fit 模式映射和背景色容器
  • yaml2pptx.py: 移除传递 dpi 参数到 PptxGenerator
  • preview/server.py: 移除传递 dpi 参数到 HtmlRenderer
  • validators/validator.py: 移除对 image_config 的引用

删除的文件

  • utils/image_utils.py: 整个文件删除
  • validators/image_config.py: 整个文件删除
  • tests/unit/test_image_utils.py: 删除
  • tests/unit/test_validators/test_image_config.py: 删除
  • tests/integration/test_image_fit_modes.py: 删除
  • openspec/specs/image-fit-modes/: 整个规格目录删除

API 变更

  • YAML 语法移除:
    • 图片元素不再支持 fit 字段
    • 图片元素不再支持 background 字段
    • metadata 层级不再支持 dpi 字段

依赖变更

  • Pillow 依赖保留(在 pyproject.toml 中),用于未来可能的图片处理需求

文档变更

  • README.md: 移除图片适配模式使用说明
  • README_DEV.md: 移除图片处理架构说明