怎么做自己的TTF文件

怎么做自己的TTF文件,第1张

嵌入式TTF字体文件制作

制作目的:

1.嵌入式空间存储要求,全汉字的TTF字体文件至少2M,造成不必要空间浪费。

2.界面美观目的,嵌入式终端艺术字或特殊字的使用。定制自己的字库,以便使得最终用户能够看到漂亮的中文显示。

制作工具:

1.Font Creator Program 41 简称 FCP

2.Photoshop90

3.汉字内码查看器10

制作方法:

1.FCP新建一个TTF字体文件,选择unicode字符,正常。删除所有已存在的字模,跟据自已需要添加新的字模。

2.添加新的字模,在字模属性中设置字模预设宽度为2048。两红线相交点即为汉字显示起点。两条黑线,一条红线,一条虚线的方格即为显示区域的大小。

3.在photoshop中新建一个320x240的背景窗。在其上以200大小写入一个汉字,选择黑体。自行设置汉字的样式,选择拉伸,旋转或变形。制作好汉字后,将另存为bmp 24色的图形(bmp图形比jpeg图形的制作效果要好)。

4.双击字模,然后右击选择导入刚制作的bmp图像。将图像拉伸刚好填充整个显示区域。

5.用汉字内码查看器获取所制作字体的unicode编码。右击字模在属性中选择映射。添加刚才unicaode编码映射。至此字模制作完成。

6.制作完所有的字模之后,选择“字体”-“安装”。生成最终的字体库文件。

7.利用相应的嵌入式软件函数创建字体,选择任意的大小,即可显示使用。

hzFont = CreateLogFont("ttf",

"hanzi",

"GB2312",

FONT_WEIGHT_BOOK,

FONT_SLANT_ROMAN,

FONT_SETWIDTH_ALL,

FONT_SPACING_ALL,

FONT_UNDERLINE_NONE,

FONT_STRUCKOUT_NONE,

24, 0);

望采纳,谢谢楼主。

运行出错,退出重新进入即可。

字模提取是一款小巧实用的文字提取工具,可以帮助用户轻松提取出字模从而生成C15或A54格式文件。软件支持所有字符的取模,如日文、俄文、土耳其文等,支持使用从12x12到256x256任意点阵大小进行文字取模,支持文字单写模式和连写模式,非常适用于编程工作者。

keil uvision3是外国公司的,像这类软件现在一般不支持中文!KeilSoftware公司推出的uVision3是一款可用于多种8051MCU的集成开发环境(IDE),该IDE同时也是PK51及其它开发套件的一个重要组件。

除增加了源代码、功能导航器、模板编辑以及改进的搜索功能外,uVision3还提供了一个配置向导功能,加速了启动代码和配置文件的生成。

此外其内置的仿真器可模拟目标MCU,包括指令集、片上外围设备及外部信号等。

uVision3提供逻辑分析器,可监控基于MCUI/O引脚和外设状态变化下的程序变量。

uVision3提供对多种最新的8051类微处理器的支持,包括AnalogDevices的ADuC83x和ADuC84x,以及Infineon的XC866等。KeilC51V805为最新汉化版,全中文环境,支持PA51中文单片机汇编,可实现全中文编程、动态子程序库调用、自动汉字字模生成、自动图像数据生成等诸多强大功能。本版本已修正0xFD的BUG,注册后解除2K代码限制和8K编译限制。

从网上下载一个字模文件hzk16,放在c:\hzk16,然后新建一个EXE工程,在Form1上放一个PictureBox,一个Text,一个Hscroll,然后将下列代码复制进去:

Private Sub Form_Load()

Picture1BackColor = vbWhite

Picture1ScaleMode = vbPixels

Picture1AutoRedraw = True

HScroll1Min = 1

HScroll1Max = 20

HScroll1Value = 2

Text1Text = "示例文字"

ShowZM Text1Text, Picture1, HScroll1Value

End Sub

Private Sub HScroll1_Change()

ShowZM Text1Text, Picture1, HScroll1Value

End Sub

Private Sub Text1_Change()

ShowZM Text1Text, Picture1, HScroll1Value

End Sub

Sub ShowZM(str As String, oPicBox As PictureBox, isize As Integer)

oPicBoxCls

Dim Hz(0 To 31) As Byte '转换完的32字节的字模数据

For ichar = 1 To Len(str) '依次读取字符串中所有字符

char = Mid(str, ichar, 1)

If Asc(char) > 128 Or Asc(char) < 0 Then '如果是汉字

ascBytes = Asc(char) - &HA1A1

If ascBytes < 0 Then

ascBytes = ascBytes + 65536

End If

C1 = (ascBytes And &HFF00) / 256 '区内码

C2 = (ascBytes And &HFF) '位内码

rec = C1 94 + C2

Location = (CLng(rec)) 32 + 1 '该汉字在1616点阵字库中字模第一个字节的位置

Else '如果是英文字符

Location = (Asc(char) + 155) 32 + 1

End If

sTmp = "c:\hzk16"

Open sTmp For Binary Access Read As #1 '根据区位码读取该字符在16点阵字库中的原始字模

Get #1, Location, Hz

Close #1

irow = 1

For i = 1 To 31 Step 2 '每个字节可以表示8个像素,因此1616汉字点阵需要1616/8=32个字节,每一行用两个字节表示,第一个字节表示第一行左边8个点的像素,第二个字节表示右边8个点的像素

For j = 1 To 8

If Hz(i - 1) And 2 ^ (8 - j) Then '用AND逐位位运算获得每个像素上是1还是0,如果是1,则在PictureBox上画一个isizeisize大小的红色方块

For k = 0 To isize - 1

For l = 0 To isize - 1

oPicBoxPSet ((j + (ichar - 1) 16) isize + k, irow isize + l), vbRed

Next

Next

End If

Next

For j = 9 To 16

If Hz(i) And 2 ^ (16 - j) Then

For k = 0 To isize - 1

For l = 0 To isize - 1

oPicBoxPSet ((j + (ichar - 1) 16) isize + k, irow isize + l), vbRed

Next

Next

End If

Next

irow = irow + 1

Next

Next

End Sub

生成的字模作为数组放在单片机的rom中

比如 在程序中定义 unsigned char code zimo[]={这里放字模数据};

然后编译后就在hex文件中,再烧写如单片机,就在单片机里面了

以上就是关于怎么做自己的TTF文件全部的内容,包括:怎么做自己的TTF文件、取字模软件 闪退、keil新建工程没有search等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9817272.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-02
下一篇2023-05-02

发表评论

登录后才能评论

评论列表(0条)

    保存