ASCII / ANSI|字符图形与终端画布
字符是计算机显示信息的基本单位。屏幕被分成固定宽高的字符单元;创作者控制字形、排列密度,以及终端对颜色和控制码的解释。
这条传统至少有两条彼此交叠的路线。ASCII art 依赖可打印字符的明暗和轮廓,可以在纯文本环境中传播;ANSI art 则把终端控制序列、扩展字符集和颜色一起纳入画布。1980—90 年代的 BBS、DOS 终端和地下软件社群,使 ANSI art 成为一种发布方式:作品常以 artpack 打包,连同查看器、署名和组别一起传播。
字符格与明暗
字符画最先遇到的限制是比例。等宽字体的字符格通常比普通像素更高,@、#、% 这些字形的黑色面积不同;如果直接把照片的亮度映射为字符,球体会被拉长,圆会变成椭圆。创作者往往要先校正字符格的纵横比,再选择一组从“几乎全黑”到“几乎全白”的字符。字符的黑色面积呈现离散的明暗变化。

@#%*+=-:. 的密度变化;右侧为 ANSI 颜色控制码。字符的黑色面积影响亮度,字形同时受排版宽度约束。/\\ 可以成为斜线,括号可以形成轮廓,空格保留背景。下图中的车辆和牵引车并不是用字符“描边”而已;它利用了连续空白、密集的字母簇和视角方向,使不同亮度的区域在远距离看起来合并成物体。

ANSI art 在此基础上增加了颜色和控制序列。一个 ANSI 文件不只是“彩色字符”:它可以用 ESC 序列切换前景色、背景色、光标位置和清屏方式,再用 IBM PC 的 CP437 字符集提供线框、块状阴影和装饰符号。常见的 16 色前景与 8 色背景,把色彩压缩成调色板;高亮色既能增加层次,也会让边缘变得刺眼。ACiD、iCE 等团体的作品经常在有限颜色里建立复杂的标题、金属字和角色图像,复杂图像依靠字符单元的重复与颜色边界的对齐。

BBS 的传播与显示
BBS artpack 常包含作品、作者、组别和查看信息,通过低速调制解调器传播。黑底终端上,光标移动、颜色逐行出现,有时伴随音效。导出成 PNG 会保留颜色和形状,但不保留传输节奏与终端闪烁。
ASCII art 与 text mode、Unicode block art、终端 UI 不完全相同。Text mode 作品通常把屏幕的字符网格作为整体构图;Unicode block art 可以利用半块、四分之一块字符获得更高的垂直分辨率;ANSI art 还依赖颜色控制和终端解释。它们可以相互借用,却不该被当作同义词。浏览器里的 <pre> 文字如果使用比例字体,或者自动换行,最基本的媒介条件都已经改变。
当代应用
ASCII 标志可以直接用于脚本、提交记录和命令行欢迎页。独立游戏可用字符组成角色,通过逐帧替换字符实现动画,网格结构也直接可见。
ANSI 的色彩边界也可与 Glitch and Datamosh 组合。字符图形从一开始就受格点和编码约束,glitch 往往在数据错读之后出现。视觉词汇 可分别记录网格、色块和压缩痕迹。
字体与编码
同一份 ASCII 文件换到另一种字体,图像可能立刻失去平衡。字符的黑色面积、字宽、行距和终端缩放共同决定了阴影是否连续。早期作品通常假设 IBM PC 的 8×16 或相近字形;现代网页里的字体如果把行高压得太小,字符会互相粘连,若使用比例字体,斜线和圆弧又会被拉断。
像素画直接控制每个像素的颜色,字符图形控制的是一组预先设计过的字形。字符带着语义,读者既能把它当作文字,又能把它当作纹理;当图像被压缩到很小尺寸时,文字往往会重新浮现。创作者可以故意让标题保持可读,让人物轮廓只在远距离成立,使观看在阅读与识图之间来回切换。
现代终端还增加了 Unicode、24 位真彩和鼠标输入,很多作品已经超出历史 ANSI 的 16 色和 CP437 条件。它们仍然可以被称为字符图形,但研究时要把“继承了字符网格”与“复制了 BBS 时代的技术限制”分开。前者适合和网页排版、终端 UI 组合;后者才需要严格复原旧字体、色表和控制码。