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