MF35_ 发表于 2024-12-4 20:03:58

【分享】自己做的LCD屏点阵字模

本帖最后由 MF35_ 于 2024-12-4 20:22 编辑

字体分两种,粗体(Bold)和普通(Normal),粗体字模宽度7,普通字模宽度6,高度都是10,宽度和高度包含分隔线
字模在内存上是等宽的,但支持非等宽显示
字模是按照列-行方式扫描,靠上边的像素在LSB,适合12864这样的LCD模块使用,当然,TFT也能用,至于怎么在你的程序中使用就要自己搞了

font_t结构体说明:
typedef struct {
    int w, h;                   // 字模的宽度和高度
    int first, end;             // 字体支持的字符范围
    const unsigned char *bmap;// 字体位图
    struct {
      unsigned char s, e;   // 非等宽显示的起始列和结束列
    } attr[];
} font_t;

等宽显示效果



非等宽显示效果



字模C语言代码

MF35_ 发表于 2024-12-6 23:48:10

根据大家的意见,修改了几处不太好和疏忽的地方,最新的字体现在是这样




scoopydoo 发表于 2024-12-4 21:06:01

居然还考虑到非等宽显示,不错、不错!

MF35_ 发表于 2024-12-4 21:42:39

scoopydoo 发表于 2024-12-4 21:06
居然还考虑到非等宽显示,不错、不错!

必须的啊,实际上等宽字体除了看代码我好像找不到其他使用场景了,这种点阵比较粗的液晶等宽显示太丑了,除了极个别需要对齐的场合,普通文本显示还是非等宽效果更好,而且还省屏幕空间:lol

h988 发表于 2024-12-6 08:21:22

不错,收藏了!

scu319hy 发表于 2024-12-6 13:18:59

纯手打字模要费不少工夫。我都是PS里搞,再自己写个程序转成代码
提个建议,那个数字9的字形和字母g的字形很像,9可以稍微改一下提高辨识度

MF35_ 发表于 2024-12-6 16:13:19

本帖最后由 MF35_ 于 2024-12-6 16:18 编辑

scu319hy 发表于 2024-12-6 13:18
纯手打字模要费不少工夫。我都是PS里搞,再自己写个程序转成代码
提个建议,那个数字9的字形和字母g的字形 ...

一样啊,这玩意儿谁手工搞,都是软件搞BMP,然后写程序转成需要的字模
9和g确实很像,不过宽度和高低位置不同,把g右上角那个点补上区别就明显了

这样是不是辨识度就高了

scu319hy 发表于 2024-12-6 17:33:06

MF35_ 发表于 2024-12-6 16:13
一样啊,这玩意儿谁手工搞,都是软件搞BMP,然后写程序转成需要的字模
9和g确实很像,不过宽度和高低 ...

这种9是不是要好点?

MF35_ 发表于 2024-12-6 20:02:26

本帖最后由 MF35_ 于 2024-12-6 20:07 编辑

scu319hy 发表于 2024-12-6 17:33
这种9是不是要好点?

感觉风格不太统一,字体还是要考虑到整体风格,而且点阵太少了,这种倾斜度做不出来,你可以画着试试,数字的大小是粗体7x6,普通7x5

我试试看效果

MF35_ 发表于 2024-12-6 20:15:22

本帖最后由 MF35_ 于 2024-12-6 20:17 编辑

scu319hy 发表于 2024-12-6 17:33
这种9是不是要好点?


要做出这个斜的尾巴,圆圈部分必须压缩一个像素,这样粗体看着还行,普通的看着就比较丑了,不够饱满,点阵太少要尽量避免斜线,斜线会显得很虚

scu319hy 发表于 2024-12-6 21:16:54

我稍微调整了一下,感觉还行

wiisir 发表于 2024-12-6 21:41:11

看到高手了,我就是不会,想来学习一下:lol

MF35_ 发表于 2024-12-6 23:36:58

本帖最后由 MF35_ 于 2024-12-6 23:41 编辑

scu319hy 发表于 2024-12-6 21:16
我稍微调整了一下,感觉还行

9和g的风格严重不搭啊,你那两个g的尾巴往上拐,这属于衬线字型,而9这种直尾巴,属于无衬线风格,我做的便是无衬线字型(你看我2、3、5、6、9、S、C、G这些字符,开口处都没有拐弯的),衬线和无衬线是字体风格最大的区别,混用就看着很别扭

另外,我普通体的C其实弄错了,应该是左边这种字型,右边这种是带衬线的,要用的话自己该一下,代码里改也很方便

zjh889 发表于 2024-12-7 00:02:49

谢谢大师分享!:)

scu319hy 发表于 2024-12-7 00:29:19

MF35_ 发表于 2024-12-6 23:36
9和g的风格严重不搭啊,你那两个g的尾巴往上拐,这属于衬线字型,而9这种直尾巴,属于无衬线风格,我做 ...

我画那个g不好看是因为点阵太小,那个钩过于突兀
你看Ubuntu Mono这种风格就挺好的
页: [1] 2
查看完整版本: 【分享】自己做的LCD屏点阵字模