移除图片 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>
68 lines
3.1 KiB
Markdown
68 lines
3.1 KiB
Markdown
# 移除图片适配模式功能 - 任务清单
|
|
|
|
## 1. 删除工具和验证器模块
|
|
|
|
- [x] 1.1 删除 `utils/image_utils.py` 文件
|
|
- [x] 1.2 删除 `validators/image_config.py` 文件
|
|
- [x] 1.3 更新 `validators/validator.py`,移除对 image_config 的引用
|
|
|
|
## 2. 修改核心元素定义
|
|
|
|
- [x] 2.1 更新 `core/elements.py` 的 ImageElement 类,移除 fit 字段
|
|
- [x] 2.2 更新 `core/elements.py` 的 ImageElement 类,移除 background 字段
|
|
- [x] 2.3 简化 `core/elements.py` 的 ImageElement.validate() 方法,移除 fit/background 验证逻辑
|
|
|
|
## 3. 修改演示文稿类
|
|
|
|
- [x] 3.1 更新 `core/presentation.py` 的 Presentation 类,移除 self.dpi = metadata.get("dpi", 96)
|
|
|
|
## 4. 修改 PPTX 渲染器
|
|
|
|
- [x] 4.1 更新 `renderers/pptx_renderer.py`,移除 `from PIL import Image` 导入
|
|
- [x] 4.2 更新 `renderers/pptx_renderer.py`,移除 `from utils.image_utils import ...` 导入
|
|
- [x] 4.3 更新 `renderers/pptx_renderer.py` 的 PptxGenerator.__init__(),移除 dpi 参数
|
|
- [x] 4.4 重写 `renderers/pptx_renderer.py` 的 _render_image() 方法,恢复简单实现
|
|
|
|
## 5. 修改 HTML 渲染器
|
|
|
|
- [x] 5.1 更新 `renderers/html_renderer.py` 的 HtmlRenderer.__init__(),移除 dpi 参数,硬编码 self.dpi = 96
|
|
- [x] 5.2 简化 `renderers/html_renderer.py` 的 render_image() 方法,移除 fit 模式映射逻辑
|
|
- [x] 5.3 简化 `renderers/html_renderer.py` 的 render_image() 方法,移除 background 容器逻辑
|
|
|
|
## 6. 修改入口文件
|
|
|
|
- [x] 6.1 更新 `yaml2pptx.py`,移除传递 dpi 参数到 PptxGenerator
|
|
- [x] 6.2 更新 `preview/server.py`,移除传递 dpi 参数到 HtmlRenderer
|
|
|
|
## 7. 删除测试文件
|
|
|
|
- [x] 7.1 删除 `tests/unit/test_image_utils.py`
|
|
- [x] 7.2 删除 `tests/unit/test_validators/test_image_config.py`
|
|
- [x] 7.3 删除 `tests/integration/test_image_fit_modes.py`
|
|
- [x] 7.4 检查并更新 `tests/fixtures/create_test_images.py`(如果有其他依赖则保留,否则删除)
|
|
- [x] 7.5 检查并更新 `tests/integration/test_rendering_flow.py`,移除相关测试
|
|
|
|
## 8. 删除规格文件
|
|
|
|
- [x] 8.1 删除 `openspec/specs/image-fit-modes/` 整个目录
|
|
|
|
## 9. 更新主规格文件
|
|
|
|
- [x] 9.1 更新 `openspec/specs/element-rendering/spec.md`,移除 fit 和 background 相关规格
|
|
- [x] 9.2 更新 `openspec/specs/html-rendering/spec.md`,移除 fit 和 background 相关规格
|
|
|
|
## 10. 更新用户文档
|
|
|
|
- [x] 10.1 更新 `README.md`,移除图片适配模式章节
|
|
- [x] 10.2 更新 `README.md`,移除 metadata.dpi 配置说明
|
|
- [x] 10.3 更新 `README_DEV.md`,移除图片处理架构说明
|
|
- [x] 10.4 更新 `README_DEV.md`,移除 Pillow 依赖说明(改为保留用于备用)
|
|
|
|
## 11. 验证和测试
|
|
|
|
- [x] 11.1 运行 `uv run pytest`,确保所有测试通过
|
|
- [x] 11.2 使用 Grep 搜索代码库,确认没有遗留的 image_utils 或 image_config 引用
|
|
- [x] 11.3 使用 Grep 搜索代码库,确认没有遗留的 fit 或 background 参数引用(在图片元素上下文中)
|
|
- [x] 11.4 运行 `uv run python yaml2pptx.py` 测试基本转换功能
|
|
- [x] 11.5 运行 `uv run python preview/server.py` 测试预览功能
|