- 支持四种图片适配模式:stretch、contain、cover、center - 支持背景色填充功能(contain 和 center 模式) - 支持文档级 DPI 配置(metadata.dpi) - PPTX 渲染器集成 Pillow 实现高质量图片处理 - HTML 渲染器使用 CSS object-fit 实现相同效果 - 添加完整的单元测试、集成测试和端到端测试 - 更新 README 文档和架构文档 - 模块化设计:utils/image_utils.py 图片处理工具模块 - 添加图片配置验证器:validators/image_config.py - 向后兼容:未指定 fit 时默认使用 stretch 模式
2.2 KiB
2.2 KiB
图片适配模式支持
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: 新增图片处理架构说明