效果
下载链接:http://yun.mangata.ltd/s/jRRiM 包括了字库文件以及参考程序,不保证长期有效~
字库链接文件已经给出来了libfont.a
,参考程序也是给出来的test.c
这个字库文件里面我们最关心的是Clean_Area
和Display_characterX
Clean_Area
通过font.h
函数我们可以知道这个函数的声明
int Clean_Area(int X, //x坐标起始点
int Y, //y坐标起始点
int width, //绘制的宽度
int height,//绘制的高度
unsigned long color); //往屏幕指定区域填充颜色
我们只需要根据我们的需求来进行填充即可,这个相当于是一个清空某个范围的内容,或者说重新填充color颜色的矩形方块(请参见RGB颜色对照表,最高的两位表示透明度),例如我们这里填充的是白色
Display_characterX
这个函数就是显示字体的函数了,先看他的函数声明
int Display_characterX(unsigned int x, //x坐标起始点
unsigned int y, //y坐标起始点
unsigned char *string, //GB2312 中文字符串
unsigned int color , //字体颜色值
int size); //字体放大倍数 1~8
和上面有点相似,只不过这里是显示字符串,然后可以调节字符的大小(1-8),unsigned char*string
就是我们想显示的字符串,注意这里的编码格式要是GB2312
//
// Created by Mangata on 2021/12/19.
//
#include
#include "font.h"
#include
int main(void)
{
//初始化字?
Init_Font();
char num[3];
int i=0;
Clean_Area(50, 50, 200, 100, 0x00FFFFFF);
Display_characterX(50, 50, "谢顺全", 0x00FF0000, 3);
Clean_Area(270, 50, 200, 100, 0x00FFFFFF);
Display_characterX(270, 50, "李泽坤", 0x0000FF00, 3);
Clean_Area(490, 50, 200, 100, 0x00FFFFFF);
Display_characterX(490, 50, "张颖", 0x000000FF, 3);
// while(1)
// {
// //划一块区? Clean_Area(50, 50, 150, 100, 0x00FFFFFF);
//
// sprintf(num, "%d", i++);
// //在指定的区域显示字符
// Display_characterX(50, 50, num, 0x00000000, 4);
// sleep(1);
// }
//关闭字库
UnInit_Font();
}
// arm-linux-gcc test.c -o test -I ./ -L ./ -lfont 这个只是一个例子,根据自己情况来
注意事项
我这里使用的是IDE是Clion
- 注意代码的编码格式要是GB2312,一般默认的是
UTF-8
,所以需要更改一下,在右下角点击更改
- 正确连接到字体的lib库
我这里的文件目录大概是这样:
所以我编译的时候是这样的:(在src
目录)
arm-linux-gcc My_Font.c -o My_font -I ./ -L ../lib/ -lfont