Marlin固件汉字字体更改

来源:互联网 发布:windows rt系统下载 编辑:程序博客网 时间:2024/05/19 18:14

固件汉字字体更改。

出处:http://www.makerlab.me/guides/9/articles/51

我是根据这位大神学的。由于是只学不尝试自己使用的时候不一定成功。然后就按照他的方法做了。才疏学浅才导致问题各种有。自己总结一个最直接快捷的方法记录一下。

下载汉字字库。如大神所说,这个字体确实挺好看:fireflysung.ttf

还有两个工具要用:bdf2u8g.exe   FontTool

步骤:

1、ttf ---->  bdf 。使用FontTool。里面有教程。不过用不了那么多功能。只需要load 然后save就行了。打开ttf,保存为bdf。不过字体高度(像素为单位)在load的界面注意设置一下。12864的就设置为11好了。

2、使用bdf2u8g.exe。方法看上面的文章链接。

再使用这个软件的时候需要输入参数。我嫌自己计算麻烦,就写了个简单的VS工程编译出来一个MFC形式的exe文件。它的功能是,你在网上查到汉字码以后使用这个小工具计算参数。可以下载看看。如果不能运行就是缺少dll文件。这是工程文件,你可以更改并且用VS编译。由于我不是做PC软件开发的,很粗糙,见笑了。


如汉字“中”,汉字码为4E2D,(不分大小写:4E2D,4e2d)


然后你在win系统cmd命令中就可以直接写:

#bdf2u8g.exe -b 45 -e 45 -l 156 fireflysung.bdf ffs ffs.txt

下面是这个小工具的计算源码:

void Cchinese_fontDlg::OnBnClickedCalc(){// TODO: Add your control notification handler code hereUpdateData(true); int high,low;char *cnum ;cnum = (LPSTR)(LPCTSTR)m_num;high = hexturndex(cnum[6]) + hexturndex(cnum[4])*16 + hexturndex(cnum[2])*256 +hexturndex(cnum[0])*4096;low = hexturndex(cnum[6]) +hexturndex(cnum[4])*16;m_begin = low;m_end = high / 128;int hex = 0x23;if(low < 128)m_pagec = "l";else m_pagec = "u";UpdateData(false); }int Cchinese_fontDlg::hexturndex(char c){switch(c){case '0':return 0;case '1':return 1;case '2':return 2;case '3':return 3;case '4':return 4;case '5':return 5;case '6':return 6;case '7':return 7;case '8':return 8;case '9':return 9;case 'a':case 'A':return 10;case 'b':case 'B':return 11;case 'c':case 'C':return 12;case 'd':case 'D':return 13;case 'e':case 'E':return 14;case 'f':case 'F':return 15;}};


得到数据以后就按照MakerLab的方法把数据放到dogm_font_data_marlin.h中。使用的时候setfont(xxxx)就行了。

Ttf格式的字库,网上随便下载。此方法有效。


0 0
原创粉丝点击