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

58 lines
2.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 移除图片适配模式功能
## 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`: 移除图片处理架构说明