Skip to main content

图片转文本

将上传的图片转为 ASCII 字符画(灰度 → 字符映射)。


流程

  1. GET /api/storage/generateCode?storageId=ImageToText → 获取一次性上传码
  2. POST /filePersistence/upload/ImageToText/{code} → 上传图片,获取 file_id(MD5)
  3. GET /api/generate/imagetotext?file_id=...&col=...&algo=... → 生成 ASCII 文本

接口

生成上传码

GET /api/storage/generateCode?storageId=ImageToText
参数类型必填默认值说明
storageIdstringdefault存储空间 ID

返回 {"code":200, "data":"<storageCode>"},code 为一次性使用,Redis 缓存 8 小时。

图片转 ASCII

GET /api/generate/imagetotext
参数类型必填默认值限制说明
file_idstring上传图片返回的 MD5
colint691–200输出字符宽度(列数)
algostringgraygray / border算法:灰度映射 / Sobel 边缘检测二值化

返回 text/plain; charset=utf-8,每行末尾 \r\n

算法说明

algo算法说明
gray加权平均灰度0.299R + 0.587G + 0.114B → 映射到 74 级字符
borderSobel 边缘检测 + 二值3×3 Sobel 算子 → 梯度幅值 → 阈值 max/7 二值化

字符集

按灰度从暗到亮映射:空格 → A-Za-z0-9-,%()+/:='?

示例

/api/generate/imagetotext?file_id=d41d8cd98f00b204e9800998ecf8427e&col=80
/api/generate/imagetotext?file_id=d41d8cd98f00b204e9800998ecf8427e&col=120&algo=border

缓存

LRU 缓存 300 条,相同参数命中后直接返回缓存文本,无需重复渲染。