图片转幻灯片案例:还原一页截图里的「图中图」

更新于

一个图片转幻灯片的真实案例:从一页截图出发,看元素怎么被逐个识别和还原,包括图里的那张图。

图片转 PPT 的难点常常不在文字和色块,而在图里嵌着的图。把一张 PPT 截图还原成可编辑 PPT 时,文字、色块、线条、表格都能变成原生元素。图里嵌着的图——照片、产品截图、插画、品牌 logo——没有对应的原生形状,用多边形去描很难保留原貌。为了让这类内容在还原后依然清晰可用,我们改为直接从原图里把它们裁出来。

这篇文章用一页「投资主线」幻灯片做例子,说明图片转幻灯片时本工具怎么处理这类内容。

一、这页图里有什么

按还原方式,这页内容可以分成三类:

  • 能直接变成原生元素的:大标题、副标题、四条要点、五张卡片的底板和编号胶囊、要点列表、「融资含义」标签、底部两条横栏和所有文字。这些占了页面的绝大部分。
  • 能用图标库表达的简单图形:勾选圆点、卡片之间的箭头、工具箱,以及底部的柱状图、盾牌、饼图、趋势、地球、人群等。它们还原为图标元素,导出后仍然可以换颜色、换图标。
  • 只能当图片处理的:五张卡片里的 6 张实拍照片(货轮码头、LagRide App 和车、车队停车场、充电站、维修车间、物流园区航拍);图标库(目前 63 种)里没有对应款式的图标,比如货轮、汽车、充电桩、工厂;以及品牌字标「LagRide」。

第三类就是本文讲的「图中图」。

二、一条底线:模型只给坐标,像素由服务端裁

我们没有让模型生成图片,也没有使用图片编辑模型。这些照片原图里就有,最准确的做法是把原图那一块原样裁下来。

拆解时,模型除了输出各个矢量元素,还会报告每张图的名称和位置框,例如「货轮码头:x 53,y 400,宽 262,高 110」。服务端拿到后:

  1. 把这份位置清单和矢量元素分开处理。矢量元素仍然不允许带链接、编码数据或任何位图,这条校验没有放宽。
  2. 对每个区域严格校验:只读取数字框和简短名称,名称看起来像链接或编码数据时换成「图片 N」;过小(不到画布 0.1%)或过大(超过 90%)的框丢弃;最多 12 个;其他内容一律忽略。
  3. 从你上传的原图里按框裁出像素,保存为本任务内的 PNG。

也就是说,模型给出的只是「哪里有一张图」,图片内容永远来自你自己的原图,模型没有途径往 PPT 里放入外部内容。

提示词同时要求模型:框要紧贴图片;图片外面的文字照常输出为文字元素,不要框进去;图片后面的卡片底板照常输出为原生元素;能用图标库表达的简单图标继续用图标。

三、裁下来之后:要不要去背景

裁出来的是一个矩形。实拍照片本来就是矩形,原样保留即可;但 logo、插画这类图形通常压在纯色底上,矩形裁切会带一圈白底,放到彩色卡片上很突兀。所以每张图都会自动判断一次要不要去背景,全过程是确定性的像素运算,不经过模型:

  1. 判断是不是纯色底。取裁切区域最外圈 2 像素,如果 85% 以上的像素都接近同一种颜色,就认为图形放在纯色底上;否则认为是照片,保留矩形,不做任何处理。
  2. 只去掉和边框连通的背景。从四条边向内填充,只有和边框连通、颜色接近背景色的区域才变透明。图形内部和背景同色的部分(比如白色的高光、图标里的留白)不和边框连通,会被保留。
  3. 软边缘。透明度随颜色差异平滑过渡,边缘不会出现锯齿。
  4. 去白边。透明边界向内收缩一个像素,半透明的边缘像素扣除混进来的背景色,放到深色底上也不会出现一圈白边。

四、在这页图上实际跑一遍

为了单独观察去背景算法的表现,我们手工框出这页图里的 11 个区域,用与产品相同的算法处理(这一步不经过模型,框是人工给的):

区域 框 [x, y, w, h] 判断 结果
货轮码头照片 53, 400, 262, 110 非纯色底 保留矩形
LagRide App 与车 392, 400, 245, 110 非纯色底 保留矩形
车队停车场 705, 400, 240, 110 非纯色底 保留矩形
充电站 1008, 400, 128, 110 非纯色底 保留矩形
维修车间 1142, 400, 135, 110 非纯色底 保留矩形
物流园区航拍 1340, 400, 283, 110 非纯色底 保留矩形
货轮图标 126, 296, 112, 68 白底 #FEFEFD 去背景
LagRide 字标 430, 312, 160, 50 白底 #FEFEFE 去背景
汽车图标 790, 292, 82, 70 白底 #FDFEFE 去背景
充电桩图标 1026, 302, 58, 60 白底 #FDFEFE 去背景
工厂图标 1510, 298, 72, 62 非纯色底 保留矩形

下图把结果铺在棋盘格上,透明的地方能看到棋盘格(放大 2 倍):

已有案例抠图结果总览
案例图片 · 已有案例抠图结果总览

6 张照片全部判为照片、原样保留,像素完全不透明;货轮、汽车、充电桩图标和 LagRide 字标的白底被去掉,四角完全透明,图形本身和汽车外圈的细线圆环都保留了下来。

工厂图标说明了框的松紧为什么重要:这个框贴得太紧,烟囱和厂房顶碰到了边框,外圈里有一大块橙色,接近同一颜色的比例不到 85%,于是按照片保留了矩形。把框向外扩 10 像素再处理,就能识别出白底并去掉。为此,你手动「转为图片」时,服务端会把选区外扩至少 4 像素或 4%,让边框落在背景上。

五、你可以怎么调整

模型标出的区域不一定都准确,所以每张图在界面上都可以单独处理:

  • 元素清单:矢量元素后面列出所有图片,带棋盘格缩略图和标签(抠图·已去底、抠图·非纯色底、外链图片等)。点清单里的行或画布上的图片可以互相选中。
  • 「去背景」开关:自动判断不对时可以手动关掉或打开,服务端会从原图重新生成。
  • 「转为图片」:如果某张图被还原成了一组多边形,选中这些元素点「转为图片」,服务端按它们的包围盒从原图裁一张图替换掉,原来的多边形删除。
  • 「移除」:不需要的图片直接移除。

以上操作都可以逐步撤销。视觉复检截图时,抠图按实际效果画进预览,复检模型看到的就是最终效果;完整性检查、视觉复检和 imageToEditablePPT-Agent 也会被告知这些区域已经是图片,不要报缺失,也不要再画一遍。

六、导出

导出 PPTX 时,每张抠图直接读取任务里保存的 PNG,作为原生图片嵌入,不访问任何外部地址,这是图片转 PPT 结果在 PowerPoint 里仍然可编辑的最后一环。去过背景的 PNG 带透明通道,在 PowerPoint 里是普通图片,可以移动、缩放、裁剪、替换。

七、目前的限制

  • 只能去纯色底。渐变底、照片底上的图形会保留为矩形,可以导出后在 PowerPoint 里处理。
  • 圆角照片会带底色角。这页的照片都在圆角卡片里,裁出来的矩形四角是白色。照片不去背景,白角会保留;放回白色卡片上看不出来,换成彩色底时会露出。
  • 叠在照片上的文字会出现两份。文字如果压在照片上,裁切会把它一起带走,同时它又被还原为文字元素。提示词要求框避开文字;仍然出现时,可以删除多余的文字元素,或移除这张图片。
  • 图片始终在最上层,目前不能在画布上拖动和缩放,可以导出后在 PowerPoint 里调整。

更多关于图片来源、重设计和导出的规则,见专题:我们怎么处理 PPT 中的图片。

图片转幻灯片