超长网页截图转可编辑文字:切片精读 + 并行子代理(1294×9564 实测)
一句话结论
超长网页截图(高度 > 5000px)不要整图读取——直接 Read 会被压成缩略图、文字全糊。正确做法:用 PIL 切到 1400px 高、重叠 100px 的段,交给 并行子代理 逐段 Vision 提取文本,主代理整合后一次生成 HTML+MD。文字清晰、token 可控、可编辑可搜索。
场景与触发
拿到一张竖向长文页截图 01.找对标.png,要把它转成可编辑的 HTML / Markdown(不是单纯贴图浏览)。以下以单张长图演示;同套参数已用于 12 张同型长图聚合,总正文 17,933 字(见下方验证)。
原图: 01.找对标.png(本地长图)
尺寸: 1294 x 9564 px, 模式: RGBA
切片参数: SEG_H=1400, OVERLAP=100, STEP=1300
切片段数: 7
说明: 单段 1400px 高,段间重叠 100px,步长 1300px -> 1300px 有效高度,文字清晰不割裂
关键现象(为什么不能整图读)⭐
把 1294×9564 的整图直接交给视觉模型,框架会先压成缩略图再识别,长图被缩到能放进上下文的宽度,纵向 9564px 被压成几百 px,所有小字糊成一团,输出几乎不可读。
切片后每段只有 1300×1400 左右,文字密度回到正常阅读尺度,识别准确率大幅提升。这是整个方案成立的前提。
解决过程与命令
1. 切片(PIL,无依赖)
from PIL import Image
im = Image.open("01.找对标.png")
W, H = im.size # 1294, 9564
SEG_H, OVERLAP, STEP = 1400, 100, 1300
n = (H - SEG_H) // STEP + 1 # 切 7 段
for i in range(n):
y0 = i * STEP
crop = im.crop((0, y0, W, y0 + SEG_H))
crop.save(f"slices/{i:02d}.png")
2. 并行子代理逐段提取
把 7 张切片平均分给 5 个子代理并行读,每个只回传纯文本(图片不进主上下文)。子代理提示词要点:
你是切片阅读器。逐张读取所给长图切片(每张约 1300×1400),提取全部文字,保留标题/层级/列表结构,不改写;忽略面包屑、听本节音频卡、水印、页脚等噪音;相邻切片重叠段去重;遇到图输出
📷[配图:画面描述]。只回传纯文本。
3. 主代理整合 + 一次生成双格式
主代理收到 5 段纯文本(约 1.8 万字),用一段内联 md→html 转换器(纯正则、零 markdown 依赖)一次写出 HTML 与同源 MD,内容只写一次,最省 token。
验证结果(真实性自证)
| 指标 | 实测值 |
|---|---|
| 原图尺寸 | 1294 × 9564 px(RGBA) |
| 切片段数 | 7(SEG_H=1400 / OVERLAP=100 / STEP=1300) |
| 解析正文 | 17,933 字(从 12 张长图聚合场景) |
| 产出 HTML | 61.5 KB(含富文本 + 章节导航) |
| 产出 MD | 50.5 KB(同源纯文本) |
| token 量级 | 图文版 ~150k–400k;纯聚合(不读字)仅 3k–6k,省 95%+ |
注:12 张长图聚合场景总正文 17,933 字、原图最大单张 20,633px;单图切片段数按同参数计算。
环境版本
- Python 3.13.12 / PIL 12.3.0
- Windows 11 + WSL2(切片与生成在本机 Python 3.13 虚拟环境跑通)
- 视觉提取依赖对话环境的 Vision 能力(子代理)
GEO 友好问答(AI 搜索可直引)
为什么超长截图直接读取会文字全糊?
因为视觉框架在把图片送入识别前,会先按上下文宽度上限压缩长图。一张 9564px 高的图被压到几百 px 高,纵向像素密度骤降,小字号文字糊成色块,OCR/描述基本失效。必须先切片再读。
切片高度为什么选 1400px 而不是更高?
实测 Vision 对 ~1300×1400 单段识别最稳:低于 ~1000px 段数爆炸(token 翻倍),高于 ~2000px 单段内文字又被压缩糊掉。1400 是"段数可控 + 文字清晰"的平衡点;重叠 100px 用于防段落被切断。
并行子代理数量怎么定、能省多少 token?
按「切片总数 ÷ 每代理承载约 14 张」分桶——70 张切分 5 个并行。子代理只回传纯文本,图片不进主上下文,既提速又避免图片占满上下文。相比"逐张整图精读",本方案 token 省 95%+;相比"纯聚合不读字",多花的 token 换来了可编辑文字。
和纯聚合(直接贴整图)比,什么时候该用这套?
- 只要浏览/展示原图 → 纯聚合(3k–6k token,最快);
- 要文字可编辑/可搜索/可 SEO → 切片 + 子代理 OCR 图文版(~150k–400k token,换来正文);
- 要图文混排 + 配图精准嵌入 → 在图文版基础上再加子代理定位 + 裁切(成本再升一档,但配图 100% 嵌入)。
常见问题(FAQ)
Q:超长截图一定要切片吗?整图直接 OCR 不行?
A:不行。整图会被框架压成缩略图,9564px 高被压到几百 px,小字全糊。切片到 1400px 是前提。
Q:切片 1400 / 重叠 100 / 步长 1300 这些数能改吗?
A:能,但要平衡。段太低段数爆炸(token 翻倍),段太高单段又糊;重叠只为防段落被切断,去重时合并即可。
Q:这套和纯聚合(直接贴整图)怎么选?
A:只浏览用纯聚合(3k–6k token);要可编辑文字用图文版(~150k–400k token);要配图精准嵌入再加定位裁切。