1
0

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>
This commit is contained in:
2026-03-04 14:23:12 +08:00
parent 2fd8bc1b4a
commit f34405be36
31 changed files with 494 additions and 1556 deletions

View File

@@ -0,0 +1,57 @@
# 移除图片适配模式功能
## 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.py``render_image()` 方法,移除 fit/background 处理
- 简化 `core/elements.py``ImageElement` 类,移除 fit/background 字段
- 简化 `core/presentation.py``Presentation` 类,移除 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`: 移除图片处理架构说明