图片转文本
将上传的图片转为 ASCII 字符画(灰度 → 字符映射)。
流程
GET /api/storage/generateCode?storageId=ImageToText→ 获取一次性上传码POST /filePersistence/upload/ImageToText/{code}→ 上传图片,获取file_id(MD5)GET /api/generate/imagetotext?file_id=...&col=...&algo=...→ 生成 ASCII 文本
接口
生成上传码
GET /api/storage/generateCode?storageId=ImageToText
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
storageId | string | 否 | default | 存储空间 ID |
返回 {"code":200, "data":"<storageCode>"},code 为一次性使用,Redis 缓存 8 小时。
图片转 ASCII
GET /api/generate/imagetotext
| 参数 | 类型 | 必填 | 默认值 | 限制 | 说明 |
|---|---|---|---|---|---|
file_id | string | 是 | — | — | 上传图片返回的 MD5 |
col | int | 否 | 69 | 1–200 | 输出字符宽度(列数) |
algo | string | 否 | gray | gray / border | 算法:灰度映射 / Sobel 边缘检测二值化 |
返回 text/plain; charset=utf-8,每行末尾 \r\n。
算法说明
| algo | 算法 | 说明 |
|---|---|---|
gray | 加权平均灰度 | 0.299R + 0.587G + 0.114B → 映射到 74 级字符 |
border | Sobel 边缘检测 + 二值 | 3×3 Sobel 算子 → 梯度幅值 → 阈值 max/7 二值化 |
字符集
按灰度从暗到亮映射:空格 → A-Z → a-z → 0-9 → -,%()+/:='?
示例
/api/generate/imagetotext?file_id=d41d8cd98f00b204e9800998ecf8427e&col=80
/api/generate/imagetotext?file_id=d41d8cd98f00b204e9800998ecf8427e&col=120&algo=border
缓存
LRU 缓存 300 条,相同参数命中后直接返回缓存文本,无需重复渲染。