自己制作的生成点阵字体的工具

前几天发了一个BDF字体文件格式的帖子,其实那个是我在制作这个工具过程中的副产品。本来是看到很多朋友在一个字一个字地编辑点阵字体,我就想,为啥不能用一个工具来自动完成这个事情呢?

于是就有了下面这个工具:

VeryCapture_20250813085509

1、选择字模的宽度和高度,可以完整显示要处理的文字;

2、输入一个汉字,用于模拟显示;

3、输入黑白处理的阈值。因为在Windows下,字体的显示是平滑的,这样我们看起来就没有锯齿的感觉。但是点阵字不是,要的就是马赛克的感觉。所以对于字体平滑的边缘部分,需要用一个黑白阈值来处理。这个值越大,显示的字体越粗;这个值越小,显示字体越细,但是可能会丢笔画;

4、选择要处理的字体,字号;

5、设置显示字体的左偏移和上偏移,因为每种字体的长宽比例不同,所以我们设置偏移量可以保证字体居中显示;

比如我选择的是宋体,12磅的字,显示一个“体”字,字模大小是16*16,这样模拟生成的点阵汉字就是如上图显示的。

再比如,我这次选择的是静蕾体,16磅的字,字模大小是22*20,如下:

VeryCapture_20250813090755

通过预览的显示,多测试几个字,确保字体都居中显示,并且没有缺笔画,就可以生成了。

右边部分是生成字体的参数:

1、BaseLine,字体的基线,对于汉字,一般就是0;

2、Ascend、Discend,分别是字体上下方距离基线的距离,这里我也不太会设置,一般我按照4:1的关系设置这两个值。比如字体高是20,那么这两个值就是16、4。这两个值对BDF有影响,对TTF没影响;

3、字体名称,也就是打算生成的字体名;

4、图片保存路径。TTF字体的生成路径是这样的:生成每个字符的图片->转成SVG文件->把这些SVG文件批量生成TTF,所以这里是保存每个字符图片的路径。

文件夹内的图片如下:

VeryCapture_20250813091600

生成图片的同时,也生成了这个字号大小的BDF文件。

生成TTF的过程:

首先,用Potrace工具生成SVG文件:

@echo off
set target_dir=G:\FontMake
for /F "tokens=*" %%F in ('dir /B /A:-D "%target_dir%\2\*.bmp"') do (
    potrace -u 1 -q -c "%target_dir%\2\%%F" -s -o "%target_dir%\3\%%~nF.svg"
)

然后,使用merge_svg_font.py(链接)将这些SVG打包生成TTF

fontforge -script merge_svg_font.py G:\FontMake\3 QINGYUAN.TTF Qingyuan

生成的字体显示效果如下:

VeryCapture_20250813093017

VeryCapture_20250813093254

为了确保你设定的字体在Windows下显示不会发生“虚化”的现象,生成TTF字体后,你应该把同时生成的BDF点阵字体导入到TTF中,至此,点阵字体的生成就完成了!

利用这个工具,你可以把你电脑里面的任意字体都转换成点阵字体,当然,发现哪个字符不满意,你还可以自己修改编辑。这样就大大提升了点阵字体的处理效率。

posted on 2025-08-13 09:36  西点肥牛  阅读(147)  评论(0)    收藏  举报

导航