实战指南:从图片状态机到逐页构图决策)
ppt-master 图片执行分支Executor Image Branch实战指南从图片状态机到逐页构图决策【免费下载链接】ppt-masterAI turns documents or topics into real, native PowerPoint decks—with native shapes, transitions and animations,>项目地址: https://gitcode.com/GitHub_Trending/ppt/ppt-master导读本篇技术指南讲解 ppt-master 中负责所有含图页面的执行分支——executor-image.md。它定义了图片在整条生成流水线资源获取 → 校验 → SVG 编排 → 导出 PPTX中的状态语义、裁剪策略、模板内置图片重定位规则以及每页在写任何坐标之前必须完成的一次性构图决策链。读完本文你将掌握图片状态如何驱动 Executor 行为、no-crop与adaptive两种裁剪策略的合法边界、#M1-11同源可寻址裁剪的触发条件以及五个方向生成器的构图数学并了解这些契约在仓库脚本如analyze_images.py、svg_quality_checker.py中的落地支撑。一、分支定位与触发条件在 ppt-master 的执行架构中executor-base.md 是所有页面共用的“平坦 SVG 页面创作核心”而executor-image.md是它的条件分支Conditional Executor authority只要任意一张幻灯片含图该分支就与 image-layout-spec.md几何计算、image-layout-patterns.md构图词汇、svg-image-embedding.md嵌入与裁剪策略执行一起被装载。按照 executor-base 的条件分支路由规则所有触发器必须在 P01第一页之前对整张花名册roster扫描一次触发到的模块在进入页面循环之前一次性批量读取从而保证“读取动作不出现在页面循环里”。具体到图片的装载触发条件为触发场景装载内容任意一张页面含图executor-image.md image-layout-spec.md image-layout-patterns.md svg-image-embedding.md任意放置图片的Status: Sourced或文件名在image_sources.json中有记录在上述之后继续装载 executor-web-image.md网页图片署名分支两种执行档案对“权威来源”的定义不同但都遵守同一套图片契约Default Generate以design_spec.md §VIII图片资源列表及其锁定投影lock projection为权威。用户图片确认后需要运行analyze_images.py补齐资源列表再交给 Executor。Quick以主 Agent 的 active-context 决策为权威显式用户路径优先、未指定的获取方式自动解决且在 SVG 创作前完成全部准备无需确认或持久化花名册。分支读取遵循“从每个对象的信息模型出发”的原则——不能只看图表引用判断分支图片分支的触发只看页面是否真的含图。二、图片状态处理契约Status Handlingexecutor-image.md开篇即给出契约Executor 只消费已经准备好的资源prepared assets所有派生图derivatives已存在原生处理native treatments是 SVG 层面的工作。状态枚举与生命周期完整定义在 svg-image-embedding.md其语义在 image-base.md §1 中被进一步细化为“Acquire Via 路径分发”。Executor 对五种状态的处理如下状态含义Executor 处理Existing用户提供用户通过Acquire Via: user提供的文件引用../images/下的文件GeneratedAI 生成AI 或切片输出已存在引用../images/受 manifest 记录约束若文件由 manifest 支撑Illustration Sheet额外装载 executor-web-image.mdSourced网页搜索网页来源文件已存在于预期路径引用../images/读取image_sources.json做署名——若license_tier: attribution-required需渲染行内署名装载 executor-web-image.mdNeeds-Manual所属路径需要人工补全如slice的父图版不可用Default 在 Step 7 前可用虚线占位符Quick无论文件是否存在都阻断每个必需行Placeholder刻意未准备Acquire Via: placeholder虚线rect stroke-dasharray8,4 …/加描述文字2.1 状态的完整生命周期svg-image-embedding 视角在创作authoring之前svg-image-embedding.md 的 Workflow 要求所有资源先完成本地化准备解决图片需求——DefaultStrategist 资源列表 锁定投影Quick主 Agent 在 active-context 中决定。准备项目本地资源——user→ 落到images/→Existing待处理的派生图 → image-base.md §1ai→ Image_Generator →Generated带视觉的web→ Image_Searcher 最多保存 8 个排名的预览 →Needs-Selection→ 提升或翻页 →Sourced/Needs-Manual无视觉的web→ 严格按元数据排名取唯一最佳候选并记录方法 →Sourced/Needs-Manualslice→ 父图版Generated后运行slice_images.py→Generated。只消费准备好的资源——Existing/Generated→image href../images/xxx.png …/Sourced→image加署名text仅attribution-requiredPlaceholder/Needs-Manual→ 虚线边框加描述文字直到文件被校验并调和为有效状态。导出——Defaultgenerate-pptx.mdStep 7Quick全部必需资源具备已校验文件/出处与可用状态后最终检查器通过再--quick-generate导出。关键边界Hard rulesvg_final/ 是自包含预览可被插入 PowerPoint 作为 SVG 图片唯一受支持的生成-PPTX 路径是 svg_output/ 经项目转换器。PowerPoint 的手动 Convert-to-Shape 不被支持。2.2 状态机在脚本层的落地状态机并不是纸面约定仓库脚本为它提供了可执行的支撑analyze_images.py报告目录内所有图片的客观参数宽、高、宽高比、格式、是否含透明像素、文件大小并生成analysis/image_analysis.csv。其 docstring 明确声明它“不解析画布、不规定布局、不生成 Strategist 建议”与“Executor 只消费已准备资源”的分工完全一致。脚本还会读取image_manifest.json可选为 EMF/WMF 等矢量媒介补充分辨率元数据并按宽高比把图片归类为 Ultra-wide / Wide landscape / Standard landscape / Near square / Portrait。svg_quality_checker.py最终检查器会校验 SVG 层面的合规例如行内样式白名单、clipPath只能在image上使用且defs中必须恰好一个基本图元等见 shared-standards-core.md §1.2同时负责Sourced图片缺失“作者 许可证”行内署名时报错。三、模板内置图片一次传输重写不是视觉编辑executor-image.md明确要求模板内置图片template-bundled images必须被重新定位rebased。apply-template-workspace.md 负责把模板工作区中的images/、icons/便携资源原子化安装进项目命令为python3 skills/ppt-master/scripts/apply_template.py project_path --root workspace_root。安装之后含图页面包括mirror页都必须把相同的字节重定位到精确的../images/name这是传输层重写transport rewrite不是视觉编辑——像素内容不变只是 href 指向项目本地资源。绝不保留裸 href 或来源模板的 href。也就是说任何页面 SVG 里出现指向模板源目录的资源引用都是违规的。模板 SVG 只是创作原型Master Layout 上下文已解析页面的真正身份来自design_spec.md与spec_lock.md模板只指导构建、从不提供导出内容executor-base 的 Shape-first 硬规则。四、裁剪策略契约Crop Policy这是executor-image.md最核心的约束之一。Executor 必须读取 §VIII 行及其锁定投影source、crop并按以下规则处理4.1cropno-crop或旧式| no-crop在每一张使用no-crop源的幻灯片上必须保留一个可见的完整实例one visible complete instance该实例必须使用九种合法meet锚点之一严禁none拉伸、clip-path、mask、溢出裁剪overflow clipping、嵌套裁剪视口nested crop viewport。仅在“完整实例保持可见”的前提下才允许**同页的辅助细节视图或放大镜lens**对同一源进行裁剪。4.2cropadaptiveadaptive表示允许但不要求裁剪。此时 Executor 需要从用途purpose、宽高比ratio、焦点focus与容器container出发选择meet或焦点安全的slice。4.3 冲突与回退投影缺失或冲突 →返回上游return upstream不得自行猜测§VIII 的Image pattern是Reference参考起点——除非标注(binding)否则可以自由调整。4.4 与嵌入语法的对应svg-image-embedding.md 给出了标准image形态image href../images/image.png x0 y0 width1280 height720 preserveAspectRatioxMidYMid slice/preserveAspectRatioxMidYMid slice居中裁剪等价 CSScoverxMidYMid meet完整显示等价 CSScontainnone拉伸——绝不允许用于no-crop源Base64data:href 只是svg_final/预览形式不是创作形态clipPath在image上属于条件允许见 shared-standards-core.md §1.2defs中恰好一个circle/ellipse/rect/path/polygon不适用时应先把圆角烘焙进带 alpha 的 PNG 再嵌入。五、硬规则一同源可寻址裁剪#M1-11executor-image.md对“同源可寻址裁剪”设定了严格的门槛——任何布局建议包括#M1-11本身都不会自动激活这种传输机制#M1-11same-source addressable crops从多个独立对象中导出一组共享精确源坐标系的原生图片#M1-09是刻意错位deliberate-offset处理没有已注册或 Morph 的连续性不属于本规则管辖。只有在以下需求真正存在时才使用多个独立裁剪必须保持一个精确的场景映射或有明确的可编辑 / Morph 需求需要多个独立图片对象。启用时的四条强制条件复用同一个精确href不得使用切片资源slice assets每个独立对象要有稳定的、页面唯一的id并且拥有自己的嵌套裁剪包装nested crop wrapper每个包装的viewBox都必须从一个共享的“源到页面”变换推导该变换作用于所有可见容器的并集——这样移除像素不会引起重缩放gaps remove pixels without rescaling包装语法与形状框裁剪形式shaped-frame clip form见 svg-effects.md §6.5。失败判定重复裁剪或 SVG/PPT 漂移drift即失败。另外注意在单个image上做复合裁剪compound clip是#M1-10一个源导出为一个带分离裁剪子路径的原生图片片段不是独立图片对象不能替代需要“对象保持独立可编辑或可 Morph”的#M1-11。image-layout-patterns.md §4.1 用一张拓扑对照表精确区分了三种“看似相似”的模式ID源导出图片拓扑视觉关系单图复合裁剪#M1-10一个源一个带分离裁剪子路径的原生图片一个连续场景横跨分离形状片段不是独立图片对象可寻址同源裁剪#M1-11一个精确源引用多个可独立寻址的原生图片裁剪共享一个源坐标系并保持精确配准异源分块平铺#P3-21不同源多个独立图片对象嵌于互锁单元父轮廓统一同级对象不暗示跨单元场景连续六、硬规则二可见层时序Visible-Layer Timing该规则约束“动效规划与 SVG 创作”的先后关系最终 SVG 中必须已经存在动效方案需要的每一个裁剪、放大镜、暗化层scrim、对比层、证据层或标注层动效阶段可以重新分组普通的 Slide-local 内容但绝不允许发明或修改可见内容。推论当某个非绑定建议没有合法单元可用时应简化为现有单元、页面切换或none当某个显式需求无法表达时走失败恢复流程failure recovery不得在动效阶段偷偷补内容。这与 executor-base 的“创作动效端点”author motion endpoints默认规则互为表里转场与 Morph 配对键是后处理但两个可见端点状态必须在页面书写阶段就创作好——连续的入场 / 翻转 / 推入 / 渐进揭示 / 平移都应该作为连续页面、各自延续端点在兼容的直接根组中完成animations.json在之后负责绑定。七、硬规则三窄范围视觉检查Narrow Visual-Inspection Scope为了在“检查图片”与“不越权处理资源”之间划界该分支规定视觉检查必须极窄起点§VIII 的Reference加尺寸信息时机仅当焦点安全的裁剪、覆盖层对比度、安静区域或计划的主题关系仍不明确时才对资源或它的审查副本检查一次次数照片主导的页面可能对多张资源各查一次但每张一次、绝不查整个文件夹Generated 资源仅当意图与尺寸无法消解歧义时才检查绝不例行检查。检查永不重新打开资源选择、改变身份或必须使用项must-use、推断出处、替换资源或虚构焦点。不确定的adaptive焦点一律使用meet冲突的绑定约束返回上游。八、逐页图片构图决策链Image Compositionexecutor-image.md§1 的第一条是Mandatory强制每张含图页面在几何geometry之前、仅 active-context 中执行一次完整的构图决策role → direction generator → parent contour → slots/rhythm → crop → image-shape action → labels/overlays → depth/continuity该链由沟通任务communication job、信息层级hierarchy、文案copy、资源宽高比 / 焦点与整副牌节奏deck rhythm共同推导使用的动词包括anchor、continue、bridge、overlap、reveal、echo、register——仅当确实有用时才采用。决策后必须与朴素 / 仅P的放置做对比实施更强的合法构图不做额外产物、不多跑一遍、只要上下文有效就不得重读分支。8.1 默认积极图片整合可覆盖image-layout-patterns.md 是词汇表image-layout-spec.md 是数学两者都不是配额也不是锁#P…建议只是骨架可以通过 svg-effects.md 与 native-shape-authoring.md 加深、简化或组合必须保留role / source、must-use、crop / content、显式约束纯表达层面的改动无需返回上游重写。8.2 默认最终尺寸下保留图片任务可覆盖在接受窄条narrow band、小尺寸放置或裁剪之前必须保证图片用途所命名的主体或关系在其页内尺寸上仍然可识别如果它塌缩成颜色纹理color texture就放大或重组并且只有当上游任务允许时才把它当作纯纹理处理。8.3 默认每个图片组一个方向生成器可覆盖槽位位置、裁剪边缘、重叠与旋转都必须从一个生成器推导多角度需要显式声明节奏或碰撞规则。五个生成器的行为如下生成器行为vector沿一个共享移动向量推进槽位shared-baseline共享基线同时尺寸、偏移或重叠做系统性变化curve-spine沿一条连续曲线或折叠路径推导槽位与转向panel细分一个连贯的倾斜、阶梯或多边形父面板none/grid平静的朴素放置或规则网格在 image-layout-spec.md §4.3 中每个生成器都有精确的可执行数学规则直线帧方程、基线B(t) b t×d、曲线p[i] C(u[i]) e[i]×n[i]、四边形面板F(u,v)双线性插值并明确禁止剪切、斜切与真实透视panel是 2D 四边形裁剪集合绝不是扭曲的图像平面。当采用curve-spine且某点导数为零时退化为取最近不同采样点之间的割线或换用其他生成器。8.4 参考动效就绪分层Motion-Ready Layering当自定义动效激活时见 executor-base.md §1每个独立揭示或延续的图片单元现在就应是自描述的、直接根下的g id稳定取景保持静态结构化原子与槽位保持边界已有单元或页面切换可能已经足够效果、配对、顺序与时机归动效阶段所有。九、与构图词汇、几何计算的分工为避免职责重叠图片相关文档的分工是清晰的职责归属文档状态名、资源生命周期、嵌入工作流、标准image形态svg-image-embedding.md中性几何与审查规则contain / fill、相邻区域、网格、自由多图image-layout-spec.md构图词汇P1/P2/P3、M1/M2/M3、A、C 家族与 Situation Routerimage-layout-patterns.md网页图片行内署名契约license_tier三档executor-web-image.md资源获取与派生图准备image_treat.py、slice_images.py等image-base.md9.1 网页图片署名Sourced 状态必读executor-web-image.md 规定manifestimage_sources.json是署名的唯一来源署名渲染在 Executor 创作的 SVG 里绝不由后处理或导出补写。license_tier本页动作no-attribution仅imageattribution-requiredimage加可见行内署名保留作者、来源/提供方与 CC BY / CC BY-SA 许可manual仅image——用户--from-url替换件的权利与署名由用户负责从 manifest 的attribution_text出发文件名与完整 URL 在来源清晰时可省略但作者与许可必须保留否则svg_quality_checker.py会报错一个笼统的 CC 标记不能覆盖多个文件。署名绝不重复进 speaker notes 或其他产物。十、工具链与导出边界分析用户图片选定后、Executor 开始前运行python3 skills/ppt-master/scripts/analyze_images.py project_path/images生成控制台报告与analysis/image_analysis.csv补齐 §VIII 资源列表。预览在项目根目录运行python3 -m http.server -d project_path 8000预览svg_output/直接打开文件时浏览器会拦截跨目录图片。导出Default 的finalize_svg.py把图片嵌入svg_final/预览Quick 跳过该步两者的原生导出都直接读取svg_output/。受支持的唯一生成-PPTX 路径是svg_output/经项目转换器svg_final/只作为可选预览EMF/WMF 保留外链例外做无损透传。资源消费SVG 创作只消费project/images/*.{jpg,png,webp}与image_sources.jsonDefault Executor 从不调用image_gen.py/image_search.py/slice_images.py/image_treat.py缺料一律返回 Strategist 所属的准备阶段Quick 在创作前完成获取与派生绘制期间不获取、不派生、不重选。十一、落地检查清单按executor-image.md的契约一张合规的含图页面应满足状态合法只消费Existing/Generated/SourcedPlaceholder用stroke-dasharray8,4虚线加描述Needs-Manual在 Default 中等到 Step 7、在 Quick 中直接阻断no-crop源每页至少一个可见完整实例只用九种合法meet锚点无none/clip-path/mask/ 溢出 / 嵌套视口模板内置图片全部重定位到../images/name无裸 href 或来源模板 href#M1-11仅在可编辑 / Morph 或精确场景映射需求下启用且满足“同一 href、页面唯一 id、独立嵌套包装、共享源到页面变换推导 viewBox”四条可见层时序成立最终 SVG 已包含动效所需全部裁剪 / 放大镜 / 暗化层动效阶段不发明内容每张含图页在几何之前完成一次构图决策链并与朴素放置对比后实施更强构图Sourced图片按license_tier渲染行内署名作者与许可可被检查器绑定。这套契约的最终目的是让 Executor 在“只消费已准备资源”的红线下仍然能产出构图更强、裁剪合法、可编辑可动效的高质量含图页面——从状态机到构图决策每一步都有文档、脚本与检查器共同背书。【免费下载链接】ppt-masterAI turns documents or topics into real, native PowerPoint decks—with native shapes, transitions and animations,>项目地址: https://gitcode.com/GitHub_Trending/ppt/ppt-master创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考