# 图片适配模式支持 ## Why 当前图片元素渲染仅支持简单的拉伸模式,图片会被强制缩放到 box 指定的尺寸,导致图片变形或宽高比失真。实际使用中,用户需要保持图片宽高比、居中显示、填充裁剪等多种适配模式,以满足不同场景的视觉需求。 ## What Changes - 新增图片 `fit` 参数,支持四种适配模式:`stretch`(拉伸)、`contain`(包含)、`cover`(覆盖)、`center`(居中) - 新增图片 `background` 参数,支持指定留白区域的填充颜色(默认透明) - 新增文档级 `dpi` 配置(`metadata.dpi`),用于像素与英寸的转换,默认值为 96 - 引入 Pillow 库进行图片处理,利用其 ImageOps 模块实现各种适配模式 - 保持向后兼容:未指定 `fit` 时默认使用 `stretch` 模式(当前行为) ## Capabilities ### New Capabilities - `image-fit-modes`: 图片元素适配模式处理,支持 stretch、contain、cover、center 四种模式,以及背景色填充和 DPI 配置 ### Modified Capabilities - `element-rendering`: 扩展图片元素渲染能力,新增 `fit` 和 `background` 参数支持 - `html-rendering`: 同步扩展 HTML 预览的图片渲染能力,支持 `fit` 和 `background` 参数,使用 CSS object-fit 实现 ## Impact ### 依赖变更 - 新增 Pillow 依赖(不指定版本号,使用最新版) ### 代码变更 - `core/elements.py`: ImageElement 新增 `fit` 和 `background` 字段 - `renderers/pptx_renderer.py`: 重写 `_render_image()` 方法,集成 Pillow 图片处理 - `renderers/html_renderer.py`: 更新 `_render_image()` 方法,使用 CSS object-fit 实现适配模式 - `validators/`: 新增图片参数验证器(fit 值校验、background 颜色校验) - `utils/image_utils.py`: 新增图片处理工具模块(像素转换、尺寸计算、居中定位) ### API 变更 - YAML 语法扩展: - `metadata` 层级新增可选的 `dpi` 字段 - 图片元素新增可选的 `fit` 字段 - 图片元素新增可选的 `background` 字段 ### 文档变更 - `README.md`: 新增图片适配模式使用说明和示例 - `README_DEV.md`: 新增图片处理架构说明