前言
常用的字体分为两种:矢量字体和位图字体。
网页中大部分用的都是矢量字体,使用矢量图形来渲染字符,便于无损缩放、修改颜色、样式与内容分离。我之前写过几篇矢量字体相关的博客,这里不再展开。
而位图字体则使用图片来渲染字体,字体的颜色、形状、图案,都可以使用图片来绘制,可以实现复杂的字体样式,常用于游戏开发中。本文介绍位图字体的原理和制作方法。
应用
计算机最早的字体称之为点阵字体,用一系列的像素点来渲染一个字符。如今已经很少用到点阵字体了,但位图字体的原理却与它相同。位图字体使用图片来渲染字符,而图片本身就是用像素点来储存的。
主流的游戏引擎使用.fnt方案(如Cocos和LibGdx),这里给出一个简单的Demo,首先保存下面这张图:
重命名为“num.png”,然后在同个目录下新建一个num.fnt的文件,打开输入以下内容:
info face="Num" size=32 bold=0 italic=0 charset="" unicode=1 stretchH=100 smooth=1 aa=1 padding=0,0,0