~/ledge.log  ·  beiwater

$ cat posts/gray-frames-to-glyphs.md

256×192 的灰度帧怎么变成字符

terminal algorithm

源帧是 256×192 的灰度图。先按面积加权缩到字符网格,每个格子取重叠面积的平均值,边缘不会抖。细线条经过平均会发灰,所以缩放后把对比度拉高 1.45 倍,亮度 246 以上直接当作纸色。

每个字符格再切成 2×2 个子像素。取四个子像素亮度的中点,高于中点的点亮,得到 0 到 15 的掩码,对应下面这 16 个象限字符。前景色取亮的那组均值,背景色取暗的那组。四个子像素差别小于 8 的格子视为平地,直接涂一个底色。

 ▘▝▀▖▌▞▛▗▚▐▜▄▙▟█