ppt中svg格式图片批量转png

SKILL教育学习
教育学习 未标注权限 许可证不明确
安装这个技能

ppt中svg格式图片批量转png

一句话选型结论

按资料字段整理

ppt中svg格式图片批量转png是教育学习类的 Agent Skill,安装方式未标注,权限级别未标注,许可证不明确,有可直接复制的安装命令。技能本质是给模型读的说明书,效果取决于模型与客户端;装完先用一个小任务验证,再放进正式流程。

分类教育学习 安装方式未标注 权限级别未标注权限 许可证许可证不明确
累计安装 未标注 本周 未标注
GitHub 星标 未标注 仓库 未标注
下载量 未标注 技能市场下载数
权限级别 未标注权限 安装前请确认风险范围
许可证 许可证不明确 未说明

安装

未标注
在支持 Skills 的客户端里执行,装完问一句「你有哪些技能」验证
skillhub install user_a5827f21/pptx-svg2png
  1. 1
    确认客户端支持

    确认你的客户端支持 Skills(Claude、Codex、Cursor 等),并升级到较新的版本。

  2. 2
    拿到技能文件

    执行上面的命令安装;也可以把仓库里的 SKILL.md 手动放进客户端的 skills 目录。

  3. 3
    刷新技能列表

    重新打开客户端,或刷新技能列表,让新放进来的技能被加载。

  4. 4
    验证是否生效

    问一句「你有哪些技能」,确认列表里出现它,再拿一个小任务试跑。

技能档案

教育学习
字段来自技能仓库与公开索引,中文说明由本站标注
作者 / 维护方user_a5827f21仓库 未标注 · 版本 未标注
宿主客户端未标注技能可被这些客户端加载
安装方式未标注安装包 community
权限级别未标注权限安装前请确认风险范围
许可证未说明许可证不明确,商用前请自行确认条款
仓库可用性available技能仓库当前是否可访问
最近核验未标注上游最后核验时间 · 数据更新 1791671959
正文体量10.6 KBSKILL.md 原文大小,越大说明说明书写得越细

典型使用场景

3 类
按分类整理的常见用法,具体以 SKILL.md 为准
讲解知识点

按水平把知识点讲清楚。

出练习题

按章节生成练习与答案。

制定学习计划

按目标和时间排学习节奏。

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 有可直接复制的安装命令,不用自己翻文档找入口。

先想清楚的地方

  • 没有标注权限级别,实际能做什么要装好后确认。
  • 许可证不明确,商用或二次分发前先到仓库确认条款。
  • 没有做站内核验,内容以作者仓库为准。
  • 技能只是说明书,实际效果取决于模型与客户端,装完先用小任务试一遍。

更适合

  • 需要在教育学习场景里给模型补一套做法的人。
  • 愿意先读一遍 SKILL.md、确认它会让模型做什么的人。

不太适合

  • 对许可证要求很严、必须明确可商用的人。
  • 只想装完就自动变强、不打算看说明书的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
技能权限级别安装方式累计安装宿主客户端安装命令
ppt中svg格式图片批量转png当前 未标注权限 未标注 未标注 未标注 有
食谱创建课堂课程 未标注权限 GitHub 仓库 25.5 万 Codex、Claude、Cursor 有
语言学习 联网访问 ClawHub 市场 23.6 万 OpenClaw 有
learning 效率 只读 ClawHub 市场 19.2 万 OpenClaw 有
学习习惯 未标注权限 ClawHub 市场 10.2 万 OpenClaw 有
日语家教 只读 ClawHub 市场 8.2 万 OpenClaw 有

SKILL.md 全文

10.6 KB
模型实际读到的说明书原文,来自技能仓库

PPTX SVG 图片 PNG 兜底修复(可传播技能)

一、背景与根因

PowerPoint 插入 SVG 时,文件内部会同时存两份:
- SVG(矢量):清晰、可任意缩放,是"真正"的图片内容;
- PNG(光栅):SVG 的快照,作为"光栅兜底"——很多网站/在线解析器看不懂 SVG,就会回退显示这张 PNG。

正常 XML 形如:

<a:blip r:embed="PNG_rId">
  <a:extLst>
    <a:ext uri="...svgBlip">
      <asvg:svgBlip r:embed="SVG_rId"/>
    </a:ext>
  </a:extLst>
</a:blip>

即 <a:blip> 用主 r:embed 指向 PNG,再用 <asvg:svgBlip> 指向 SVG 编辑副本。

故障形态:XML 里只写了 asvg:svgBlip、漏了主 r:embed,且 media 里根本没有那张兜底 PNG。PowerPoint 本地用 SVG 能显示,但网站渲染器找不到兜底 PNG → 整块空白。

二、判定(先看是不是这个病)

对任意 slide xml,找所有 <a:blip>:
- 含 <asvg:svgBlip>,且该 blip 没有主 r:embed(或主引用指向的不是有效 PNG)→ 即"SVG 缺兜底"。
- ⚠️ 普通 .jpg/.gif/.jpeg 光栅图本来就没有 svgBlip,不要误判为问题(早期误报的根因)。

快速检测:用 scan_dir.py 扫目录,或 validate.py 校验单个文件,或 fix_path.py(会自动预判、只修真有问题的)。

三、环境自检(代理人自动执行,用户无需手动)

技能被触发后,代理人先跑 check_env.py 检测环境,无需用户碰终端:
- Python 3:本脚本能运行即已满足(标准库即可,无需 pip 装包)。
- Node.js:调用 resvg 必需。优先探测 WorkBuddy managed 运行时(任意用户名/版本),其次 PATH。
- @resvg/resvg-js:纯 WASM 渲染库。若缺失且 Node 可用,代理人自动执行安装(setup.install_resvg),装好再继续。
- 仅当 Node.js 也缺失(连 managed runtime 都没有)时,代理人会明确提示用户安装 Node.js,无法自动继续。

> 关键点:fix_path.py 在修复前会调用 check_env.ensure_ready(),所以用户只要把文件拖进来,环境不够时代理会先装好依赖再修——全程用户不用自己敲命令。
>
> ⚠️ 用户不要自己去终端跑这些脚本。所有 python xxx.py 命令都由代理人在对话中执行,结果用 present_files 交回。

四、使用方法(拖拽即修,代理人代跑)

本技能的正确用法:用户把文件/文件夹拖进对话框(或说一句话),代理人一键完成「环境自检→修复→校验→交回」。

场景 A:拖入单个 .pptx

代理人执行:

python check_env.py            # 环境不足会自动装依赖
python fix_path.py "D:/课程教研/.../xxx.pptx"
  • fix_path.py 自动:needs_fix 预判 → 有破 SVG 则 fix_pptx.py 生成 xxx_已修复PNG兜底.pptx → validate.py 校验(必须 0 问题)。
  • 代理人用 present_files 把 xxx_已修复PNG兜底.pptx 交回用户(不覆盖原文件,原文件永远安全)。

场景 B:拖入一个文件夹(批量课程目录)

python check_env.py
python fix_path.py "D:/课程教研/.../一级课件V2.0"
  • 递归扫描目录下所有 .pptx,只修复含破 SVG 的课件,自动跳过已完好、*_svg.pptx 备份、*_已修复PNG兜底.pptx 产物(防重复/递归)。
  • 末尾打印汇总:[fixed]/[skip]/[error] 三态 + 每个修复产物路径。
  • 全部修复产物仍用 present_files 交回。

覆盖原文件的约定(可选,需用户确认)

默认交付 _已修复PNG兜底.pptx,不动原图。若用户明确要求覆盖正课:

cp 原.pptx 原_svg.pptx        # 先备份真·原图
mv 原_已修复PNG兜底.pptx 原.pptx

对话示例(用户只看这一份就够了)

用户:(把文件夹「一级课件V2.0」拖进对话框)
      帮我修一下这个课程文件夹里的 PPT,网站上看 SVG 图片都是空白的。

助手:收到。我先检测环境,再把缺 PNG 兜底的 SVG 全部补上。
      ▸ 运行 check_env.py
        [Python] 3.13 OK   [Node] v22 OK   [resvg] @resvg/resvg-js OK
        环境就绪,开始扫描并修复…
      ▸ 运行 fix_path.py "D:/…/一级课件V2.0"
        === 汇总 ===
        [fixed] 新的伙伴-教案.pptx      -> 新的伙伴-教案_已修复PNG兜底.pptx
        [fixed] 距离测试.pptx          -> 距离测试_已修复PNG兜底.pptx
        [fixed] 凌波微步.pptx          -> 凌波微步_已修复PNG兜底.pptx
        [fixed] 遥控器按键-svg问题.pptx -> 遥控器按键-svg问题_已修复PNG兜底.pptx
        完成: 修复 4 / 跳过 38 / 失败 0
        全部修复产物已通过 validate.py(问题=0),网站解析可正常显示、不变形。
      (调用 present_files 交回 4 个修复文件)
      已生成 4 个修复文件(未覆盖原文件)。确认无误后我可帮你备份原图并覆盖正课,或直接手动替换。

用户:覆盖吧。
助手:▸ cp 原.pptx 原_svg.pptx;mv 原_已修复PNG兜底.pptx 原.pptx
      已覆盖,原图均已备份为 *_svg.pptx,可随时回滚。

五、修复原理

  1. 扫描所有 .rels,找出被引用的 *.svg(通过 relationships/image 类型 + .svg 后缀)。
  2. 为每个 SVG 关系复制一份指向同名 .png 的新关系,分配新 rId(SVG_rId → PNG_rId)。
  3. 用 @resvg/resvg-js(纯 WASM,无原生依赖)把每个 SVG 渲染成透明背景的 PNG,写入 ppt/media/。
  4. 在每个 slide xml 里,给含 asvg:svgBlip 的 <a:blip> 补上主 r:embed="PNG_rId",保留 <a:extLst>/<asvg:svgBlip> 扩展(PowerPoint 仍能继续编辑矢量图)。
  5. 输出 <原名>_已修复PNG兜底.pptx(不覆盖原文件,安全)。

六、完整工作流(手动分步,便于排查)

针对想逐节精修/排错的场景(同样由代理人执行,非用户手动):

python check_env.py             # 环境自检 + 缺依赖自动装
python scan_dir.py "一级课件V2.0"        # 看哪些课件有破 SVG
python fix_pptx.py "机械爪.pptx" 3       # 生成 机械爪_已修复PNG兜底.pptx
python validate.py 机械爪_已修复PNG兜底.pptx ...   # 必须 0 问题

七、关键坑(对话里逐个踩过、已修复,必读)

  1. 自闭合 blip 导致漏修(最致命):旧逻辑遇自闭合光栅图 <a:blip r:embed="rIdX"/> 因找不到 </a:blip> 而 break,漏修其后所有破 SVG。本技能 fix_part_xml 已正确处理自闭合 blip;validate.py 查"兜底完整性"可 100% 暴露漏修。
  2. 渲染 PNG 比例变形(第28节 47/65 页根因):修复只改 &lt;a:blip&gt; 引用、绝不改 &lt;p:xfrm&gt;;resvg 按 SVG 原始 viewBox 渲染,validate.py 额外做比例一致性检查(误差<2%),变形立即报出。
  3. OOXML 相对路径基准:rels 里 Target=&quot;../media/imageX.png&quot; 相对部件目录 ppt/slides/ 解析(非 _rels/)。校验解析要用 os.path.dirname(slide_part)。
  4. 不要把 jpg/gif 当 bug:只有带 asvg:svgBlip 且缺有效主引用的才算破 SVG。
  5. 校验签名:修复后每个 SVG-blip 主 r:embed 指向 ppt/media/ 下以 \x89PNG 开头的真实 PNG(>100B)。validate.py 已内置。
  6. 跨机器可传播:find_node() 与 render_svg.js 加载 resvg 时用 glob/os.homedir() 自动探测 WorkBuddy managed 运行时(任意用户名、任意版本),不再写死本机路径。拷贝到任何装有 Python3 + Node.js 的电脑均可直接运行。

八、依赖与安装

  • 运行时:Python 3(标准库即可);Node.js(调用 resvg)。
  • 依赖:@resvg/resvg-js(纯 WASM)。无需用户手动安装——代理人首次使用时 check_env.py/fix_path.py 会自动探测并安装到技能目录。
  • 离线/无网络:若目标机已具备 WorkBuddy managed node 运行时,render_svg.js 会优先回退到其 node_modules,无需安装。

九、脚本清单(本技能目录,全部由代理人调用)

文件 作用
fix_path.py 拖拽即修一键入口:吞下单个 .pptx 或文件夹,自动预判→修复→校验→汇总(最常用)
check_env.py 环境自检:检测 Python/Node/resvg,缺 resvg 自动安装;ensure_ready() 供 fix_path 复用
fix_pptx.py 核心修复:补 PNG 主引用 + 渲染写入 media + 输出 _已修复PNG兜底.pptx
render_svg.js SVG→透明 PNG 渲染器(resvg,scale 默认 3)
validate.py 严格校验:兜底完整性 + 比例不变形;退出码 0/1
scan_dir.py 扫描目录,统计每个课件 SVG/破/已修,输出待修清单
setup.py 安装依赖 @resvg/resvg-js(供 check_env 复用 find_node/install_resvg)

十、验证标准(交付前必跑)

python validate.py 交付1.pptx 交付2.pptx ...
# 期望:每行 [OK] ... 问题=0;末尾 &quot;✓ 全部通过&quot;

只要 validate.py 报 0 问题,即可确认:所有破 SVG 都已加 PNG 兜底,且渲染 PNG 比例与图片框一致,网站解析能正常显示、不会变形。

十一、排障小贴士

  • 中文路径报「路径不存在」:个别 shell 下 Python 对中文 argv 解码错位。命令前加 PYTHONUTF8=1 即可(PYTHONUTF8=1 python fix_path.py &quot;中文路径.pptx&quot;);或用 WorkBuddy 拖拽给出的完整字面值路径(通常无需此开关)。
  • validate.py 报比例问题:说明某 SVG 渲染比例与图片框不一致(多为该 SVG 无 viewBox)。检查源 SVG,必要时为其补 viewBox 后重渲染(scale 只影响清晰度、不变形)。
  • check_env.py 报找不到 node:目标机没装 Node.js 且没 WorkBuddy managed runtime。请用户安装 Node.js(含 npm)后重试,代理人会重新自检。

常见问题

5 问
答案由本站依据条目字段整理
ppt中svg格式图片批量转png怎么安装?

在支持 Skills 的客户端里执行:skillhub install user_a5827f21/pptx-svg2png。安装方式为未标注。装完刷新技能列表或重开客户端。

ppt中svg格式图片批量转png支持哪些客户端?

资料没有标注宿主客户端,但只要客户端支持 Skills(Claude、Codex、Cursor 等),一般都能加载。

ppt中svg格式图片批量转png权限高吗,安全吗?

权限级别为未标注权限。安装前先看它会读取或写入哪些内容。

ppt中svg格式图片批量转png收费吗?

本站不代收费用,也没有标注具体价格。是否收费取决于技能本身和所用的模型或客户端,正式使用前按作者说明确认。

ppt中svg格式图片批量转png用什么许可证?

许可证标注为 未说明(许可证不明确)。商用或二次分发前请到仓库确认条款原文。

热门专题

按场景挑技能
全部专题 →

技能内容以作者仓库为准;分类、权限级别与许可证状态的中文说明为中文整理,最近核验 未标注。