首页 > 其他分享 >36. 中文字库应用

36. 中文字库应用

时间:2024-09-04 19:16:44浏览次数:12  
标签:文字 编码 36 label lv Init 字体 应用 LVGL

一、LVGL字库

  LVGL 的字体功能是较为强大的:支持 UTF-8 编码、图标字体、自定义字体、最高 8bpp 的抗锯齿,等等。值得注意的是,bpp 值越大,字体的边缘会越平滑,但其对内存的占用就越多,在界面上进行字体渲染时,绘制速度也会越慢,一般的项目,采用 4bpp 就足够了。

  LVGL 支持 2 种编码方式:第一种是 ASCII 编码,这种编码只支持英文字符的显示;第二种是 UTF-8 编码,这种编码可以支持全球所有字符的显示。用户需要在 LVGL 工程中启用 UTF-8 编码,可以打开 lv_conf.h 文件,修改 LV_TXT_ENC 配置项,如下源码所示:

设置编码格式

  然后,我们可以使用使用 LVGL 官方的在线字体转换工具(网址:https://lvgl.io/tools/fontconverter),将字库文件(例如 TTF)转换成 C 语言数组字体文件,然后将其添加到工程中,声明字体后即可调用。

生成字体

在 Unicode 编码中,0x20-0x7F 表示 ASCII 码的区间,也就是英文字母,而 0x4E00-0x9FFF 是中文的区间。

二、实验例程

#include "lvgl.h"
#include "lv_port_disp_template.h"
#include "lv_port_indev_template.h"

LV_FONT_DECLARE(Font30);

int main(void)
{
    HAL_Init();
    System_Clock_Init(8, 336, 2, 7);
    Delay_Init(168);

    SPI_Simulate_Init();
    // SRAM_Init();
    TIM_Base_Init(&g_tim6_handle, TIM6, 83, 999);
    __HAL_TIM_CLEAR_IT(&g_tim6_handle, TIM_IT_UPDATE);                          // 清除更新中断标志位
    HAL_TIM_Base_Start_IT(&g_tim6_handle);                                      // 使能更新中断,并启动计数器

    lv_init();
    lv_port_disp_init();
    lv_port_indev_init();

    // 测试代码
    lv_obj_t *label = lv_label_create(lv_scr_act());
    lv_obj_set_style_text_font(label, &Font30, LV_PART_MAIN);
    lv_label_set_text(label, "你好,小樱。");

    while (1)
    {
        lv_timer_handler();
        Delay_ms(5);
    }
  
    return 0;
}

标签:文字,编码,36,label,lv,Init,字体,应用,LVGL
From: https://www.cnblogs.com/kurome/p/18397202

相关文章

  • 洛谷 B3645 数列前缀和 2 题解
    前缀知识:枚举,费马小定理,逆元,线性乘法逆元,线段树(?)。解法1:暴力如题。暴力枚举即可,30分。由于太简单,不给代码。解法2:前缀积+费马小定理+逆元由于涉及静态区间,可以想到前缀积。前缀积公式为\(q_r/q_{l-1}\),除法恰好可以用逆元来算。直接写即可。不会超时,因为时间为\(O(n\logp)\)......
  • 多目标应用:四种多目标优化算法(NSOOA、NSPSO、NSDBO、NSCOA)求解柔性作业车间调度问题(F
    一、柔性作业车间调度问题柔性作业车间调度问题(FlexibleJobSchedulingProblem,FJSP)的描述如下:n个工件{J,J......
  • 工业主板在轨道交通中的应用特点
    工业主板在轨道交通中的应用特点主要体现在以下几个方面:一、强大的处理能力高性能处理器:工业主板通常搭载高性能的处理器,这些处理器能够高效处理轨道交通系统中的大量数据,确保系统运行的流畅性和实时性。多任务并行操作:强大的处理能力使得工业主板能够支持多任务并行操作,满足轨道交......
  • VBA中类的解读及应用第十五讲:利用类方法和事件,让文本框在激活时改变颜色(上)
    《VBA中类的解读及应用》教程【10165646】是我推出的第五套教程,目前已经是第一版修订了。这套教程定位于最高级,是学完初级,中级后的教程。类,是非常抽象的,更具研究的价值。随着我们学习、应用VBA的深入,有必要理解这些抽象的理论知识。对象,类,过程,方法,属性,事件,接口,接口如何实现等等。掌......
  • C++和OpenGL实现3D游戏编程【连载7】——文字和汉字的显示
    1、本节实现的内容上一节我们讨论了纹理在二维平面内不规则图形贴图的相关基础操作,本节我们开始了解游戏里文字以及汉字的显示方法。本节课我们将从基本的ASCII字符显示,拓展到中文字符的显示,最后再讲到纹理字符的显示,并对各种文字显示方法的优缺点和使用场景进行分析,这节课......
  • 深入探索AI大模型:技术原理、应用场景与未来趋势解析
    随着人工智能技术的迅猛发展,AI大模型一直被视为推动人工智能领域提升的关键因素,大模型已成为了引领技术浪潮研究和应用方向。大模型是指具有庞大规模和复杂结构的人工智能模型,它们具有数以亿计的参数和深层次的神经网络架构。这些模型通过学习海量数据和深度神经网络的优化,......
  • Serverless 应用引擎 SAE 助力袋拉拉研发提效 70%
    作者:百潼医院环保IOT设备的引领者:机汽猫机汽猫是⼀家致⼒于通过投放⾃助取袋设备,为医院场景提供新型环保袋交付⽅式的科技公司。它成⽴于2019年,旗下品牌袋拉拉(DaiLala)通过投放⾃助取袋机,解决了医院对环保袋的管理问题,让⽤户能够随时使⽤环保袋,同时也致力于在医疗场景投放各类型......
  • Serverless 应用引擎 SAE 助力袋拉拉研发提效 70%
    作者:百潼医院环保IOT设备的引领者:机汽猫机汽猫是⼀家致⼒于通过投放⾃助取袋设备,为医院场景提供新型环保袋交付⽅式的科技公司。它成⽴于2019年,旗下品牌袋拉拉(DaiLala)通过投放⾃助取袋机,解决了医院对环保袋的管理问题,让⽤户能够随时使⽤环保袋,同时也致力于在医疗场景投放各......
  • 探索CSS奥秘:深入解析版式布局与字体样式的应用技巧
    在现代网页设计中,CSS(层叠样式表)扮演着至关重要的角色,它不仅能美化网页,还能通过精细的版式布局和字体样式设计,为用户带来更好的浏览体验。无论是新手设计师还是经验丰富的前端开发者,深入理解和掌握CSS的应用技巧,都是必不可少的技能。本文将带你一起探索CSS在版式布局与字体样式中的......
  • 具有 AI 加速的MIMX9332AVTXMAB、MIMX9332CVTXMAB、MIMX9332XVTXMAB、MIMX9332XVVXMAB
    i.MX93应用处理器通过集成的EdgeLock®SecureEnclave提供高效的机器学习(ML)加速和高级安全性,以支持高能效的边缘计算。i.MX93应用处理器是i.MX产品组合中首款集成可扩展Arm®Cortex®-A55内核的处理器,为基于Linux®的边缘应用和ArmEthos™-U65microNPU带来......