适用于极小屏幕的5×5像素字体
摘要
一款为8位微控制器和微型OLED屏幕手工打造的5×5像素字体,仅占用350字节。
暂无内容
查看缓存全文
缓存时间: 2026/04/22 17:32
# 5×5 像素字体,给超小屏幕用(Mauryczy 的博客)
来源:https://maurycyz.com/projects/mcufont/
**2026-04-18**—**2026-04-20**([编程](https://maurycyz.com/tags/programming/))
用这个字体写的示例文本
[字体数据(C 头文件)](https://maurycyz.com/projects/mcufont/mcufont.h)
所有字符都落在 5 像素见方内,画在 6×6 网格上也安全。设计原型是 lcamtuf 的 5×6 font-inline.h,而它又受 ZX Spectrum 的 8×8 字体启发。
**5×5 是“不牺牲可读性”的最小尺寸:**
- **2×2**:不可能。
- **3×3**:技术上能画,但完全没法读。
- **4×4**:画不出像样的“E”“M”或“W”。
- **5×5**:就是本字体。
其实 5×5 已经能让大部分小写字母再缩一格,从而与大写视觉上区分开。
**更窄的 4×5 或 3×5 也能做**,但得牺牲 M、带点的 0,还会让 U/V/Y 难以分辨。
并非“因为几个字母必须 5 宽就全部 5 宽”的艺术选择……而是等宽让编程简单得多:屏幕上的字符串长度永远是字符数×6。
这也让紧凑布局更安全:不用担心“8978”比“1111”长而导致数字溢出。
**整套字体只占 350 字节**,非常适合 AVR128DA28 这类 8 位单片机(16 kB RAM)。它们便宜、低功耗、抗折腾……就是图形能力弱:
哪怕 384×288 这种低分屏也有 11 万像素,远超 AVR 内存。
……可大多数项目根本用不到那么多像素。160×128 或 128×64 的 OLED 更便宜、更实用——但得靠手绘、省点的字体才能用好。
**作为对比,这是同尺寸的矢量字体:**
电脑屏幕上超小字号截图,糊成一团。
实际 6 像素高,但字母更窄,我就认了。
抗锯齿、几兆代码、一兆字库,还是比不过 350 字节的手雕像素。
## 真正的**像素**:
像素不是完美正方形,所以字体在真屏上不会像本文顶部渲染图那样。这是实机照片:
硬件实拍图
我挺喜欢子像素带来的“伪投影”效果。单色屏不会有,但字体依旧比你想象的顺滑。
像素间隙帮“e”“g”卖了个关子,不过同样的效果也允许……
## 更**小**的字体:
5×5 是无妥协的最小值,但 3×5 还能看:
这个尺寸有 32 768 种字形(27 904 个不同)。“M”“W”“Q”残了,但 O 和 0 还能区分。真想多塞 50% 列时可以考虑。
这都能读,那**3×4**呢?
这个尺寸有 4 096 种字形(3 392 个不同)
大小写无法区分,我直接选最顺眼的那套。数字也受损,但凑合能用。
**3×3** 如何?
这个尺寸有 512 种字形(400 个不同)
数字损失最大,字母无重复,还能认。
放到真机上反而好看:
还是太大?那**2×3**:
这个尺寸有 64 种字形(44 个不同)
开始离谱,大多数字母认不出,还有不少重复。最后一行是“Hello World”,看出来了吗?
把比例换成**3×2**好不少:
这个尺寸有 64 种字形(44 个不同)
模拟像素网格
横向细节多的字母(M、W、N、Q、G、P 等)比纵向细节多的(E、F)多。最后一行是“you can probably read this”,眯眼或缩放下能读。
…… completeness 起见,**2×2**:
这个尺寸有 16 种字形(10 个不同)
理论上 16 种 2×2 图案,其中一张空白,5 张只是平移拷贝,剩 10 张,刚好够做数字……但跟原字形毫无关系,更像暗号而非字体。
## *相关*:
- /projects/mcufont/mcufont.h(https://maurycyz.com/projects/mcufont/mcufont.h):5×5 字体。
- /projects/mcufont/test.c(https://maurycyz.com/projects/mcufont/test.c):字体预览程序。
- https://lcamtuf.coredump.cx/soft/embedded/font-inline.h:原版字体。
- https://moonbench.xyz/projects/tiny-pixel-art-fonts/:更多超小像素字体。
相似文章
几个有趣的现代像素字体
本文介绍了几种现代像素字体,包括 Analog Mono、Coral Pixels、Two Slice 和 Geist Pixel,讨论了它们的设计特色以及对 1990 年代亚像素渲染技术的怀旧情怀。
一款微型电子阅读器
作者分享了他们使用XTEINK X4的体验,这是一款非常小巧的电子阅读器,做工精良,运行极简的cross point固件,并使用OpenDyslexic字体进行舒适的休闲阅读。
@pablostanley:制作了一个像素艺术工具,每个像素都是代码而非位图。尝试一下 → http://newt.sh
由 @pablostanley 创建的像素艺术工具,每个像素通过代码而非光栅图形来表示。
我打造了一个袖珍Macintosh
使用运行Pico Micro Mac固件的Raspberry Pi Pico打造了一个袖珍Macintosh,具备VGA输出和USB键盘/鼠标。
C64 Dead Test 字体
对 C64 Dead Test 诊断卡中使用的独特字体的详细探索,包括其字符集、一个彩蛋以及可下载的字符 ROM。