开发者用 TypeScript 和 Canvas 构建了 Semaphore,一个完全在浏览器标签页内完成图片转 ASCII 转换与导出的开源工具。与多数同类工具需要上传图片不同,Semaphore 的整个处理流程不离开本地设备,适合处理截图、私人照片、图表等不便上传的内容。
项目无应用框架、无运行时依赖,转换路径为:图片 → Canvas 采样 → 亮度网格 → 字符映射 → 文本或 PNG。内置六种字符集预设,包括标准、细节、极简、二进制和盲文模式。盲文模式通过 Unicode 盲文字符(U+2800 起)将 2×4 点阵打包进单个码点,同等宽度下每个单元可表示八个源采样,保留更精细的空间结构;该模式还支持可选的 Floyd-Steinberg 误差扩散抖动,缓解二值化带来的梯度生硬问题。
隐私方面,生产环境响应头携带connect-src 'none'的 CSP 策略,禁止页面脚本发起 fetch、XHR 或 WebSocket 连接。项目无后端 API、无客户端分析脚本、无 Cookie、无第三方运行时请求,所选图片字节不会进入任何网络请求。支持纯文本复制、.txt 下载、彩色/灰度输出及 PNG 导出。
项目 MIT 许可,在线工具与源码已公开。
GitHub
#GitHub #开源 #TypeScript #Canvas #ASCII #图像处理 #隐私保护 #Web开发
@GitHubTrendingHub
