arduino u8g2 表情字库制作

news2024/11/24 7:37:29

U8G2 下载原代码 : GitHub - olikraus/u8g2: U8glib library for monochrome displays, version 2

1.制作图片

使用FLASH 或任何可以画图的软件制作动态图片PNG格式

大小最好先设定好如40x80 ,最好不要太大 128X64,60X60

将制作好的图片放入 下载好的 u8g2-master\u8g2-master\tools\font\png2bdf\tst\目录下

(新建tst文件夹)

2.将图片变成字体

打开下载的U8G2源文件 找到u8g2-master\u8g2-master\tools\font\png2bdf

使用cmd命令 进入u8g2-master\u8g2-master\tools\font\png2bdf 或是 创建bat文件,添加下面语语

png2bdf -o tst\myfont.bdf -f myfont -e 65  tst\*.png  //将tst文件夹下所有Png文件 转换成bdf字体格式 编号(-e) 从65 开始 glyph中使用(示列来自U8G2源代码中的示列文件 )

运行上面代码将生成myfont.bdf文件

(白底 使用 -i 选项 翻转颜色)png2bdf -o tst\myfonti.bdf -f myfont -e 65 -i tst\*.png

3.将bdf文件生成 字体文件

进入u8g2-master\u8g2-master\tools\font\bdpconv下

使用使用cmd命令 进入u8g2-master\u8g2-master\tools\font\bdpconv

                      或在目录下  创建bat文件,添加下面语语,使用bdp生成c

           bdfconv.exe -v -f 1 -m "64-511" myfont.bdf -o myfont.c -n myfont -d myfont.bdf
type myfont.c   //将myfont.bdf转换成 myfont.c  字体名(-n) myfont  描述信息(-d) myfont.bdf

编码号 从 64-511 glyph中使用

myfont.c中添加声明 “u8g2.h",复制到 Arduino\libraries\U8g2\src\clib 下

打开arduino 示列 u8g2 ->weather或是其它 

添加

extern uint8_t myfont1[]; //表情字体

void emo_tst(void)

{

//emo 字体

    u8g2.setFont(myfont1);

    u8g2.setColorIndex(draw_color);

 int k = 0;

  for(int i = 0;i<66;i++)

  {

    k = k+1;

    u8g2.clearBuffer();

    u8g2.drawGlyph(34,60,65+k%8); //使用%循环播放 8为图片的数量,65为png bdf生成时设置的值

    //u8g2.drawGlyphX2(0,0,65+k%8);

    u8g2.sendBuffer();

    delay(100);

  }

}

****png 位深须为1 : 处理方法  保存为单色位图  bmp ,后再保存为png 

png2bdf 命令 -o 输出文件 名 -f 字体名称  tst\*.png 文件tst下所有png文件 -e 编码号开始  即显示时的第一个编码号设置 glyph显示时 65

bdfconv.exe 命令 

.c文件中添加 #include"u8g2.h" 否则错误

错误

表情字体显示错误

删除错误的图片重新编辑 

MP4转GIF python代码

import os
import imageio


def mp42gif(file_name):
    rd = imageio.get_reader(file_name)
    wt = imageio.get_writer('1.gif',mode="I",size=(80,40))

    for frame in rd:
        wt.append_data(frame)

    

    wt.close();


mp42gif(args[1])

GIF转PNG代码

import os
import sys
from PIL import Image
from PIL import ImageSequence
from pathlib import Path


def gif2png(file_name):

    image_name = 'gif'

    i = 0;
    with Image.open(file_name) as im:
        for i,frame in enumerate(ImageSequence.Iterator(im)):
            if(i % 5 == 0):
                pt = Path(file_name).stem
                frame = frame.convert('1')
                frame.save(r".\tst\%s%02d.png"%(pt,i))
            
            i = i+1;


if(__name__ == "__main__"):
    u = 0
    
    for i in (sys.argv):
        if(u >0):
            gif2png(i)
            print(i)
        u = u+1

        
    input('ab')
    

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1034745.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【每日一题】1539. 第 k 个缺失的正整数

1539. 第 k 个缺失的正整数 - 力扣&#xff08;LeetCode&#xff09; 给你一个 严格升序排列 的正整数数组 arr 和一个整数 k 。 请你找到这个数组里第 k 个缺失的正整数。 示例 1&#xff1a; 输入&#xff1a;arr [2,3,4,7,11], k 5 输出&#xff1a;9 解释&#xff1a;缺失…

国科大体系结构习题 | 第二章 计算机系统结构基础

第二章 习题汇总 Q1. 在3台不同指令系统的计算机上运行同一程序P时&#xff0c;A机需要执行 1.0 1 0 8 1.010^8 1.0108条指令&#xff0c;B机需要执行 2.0 1 0 8 2.0 10^8 2.0108条指令&#xff0c;C机需要执行 4.0 1 0 8 4.010^8 4.0108条指令&#xff0c;但实际执行时间…

Linux 操作技巧

目录 一、shell-命令解释器 二、Linux中的特殊符号 三、命令历史--history 一、shell-命令解释器 shell——壳&#xff0c;命令解释器&#xff0c;负责解析用户输入的命令 ——内置命令&#xff08;shell内置&#xff09; ——外置命令&#xff0c;在文件系统的某个目录下&…

Redis Insight 版本 2.32 翻译中文

使用教程 链接&#xff1a;https://pan.baidu.com/s/11pWBZ3uQSRZbuMS8POkLCw?pwd2ke5 一、下载renderer.js 1.打开安装好的软件 2、在这里添加我们指定的文件夹&#xff0c;这个文件夹是你随便创建的&#xff0c;你可以指定任何目录 3.选择renderer.js右键保存覆盖 4.在r…

Flask数据库之SQLAlchemy--介绍--链接数据库

目录 SQLAlchemy介绍 SQLAlchemy连接数据库 SQLAlchemy介绍 数据库是一个网站的基础&#xff01;&#xff01;&#xff01; 比如MySQL、MongoDB、SQLite、PostgreSQL等&#xff0c;这里我们以MySQL为例进行讲解。 SQLAlchemy是一个ORM框架 对象关系映射&#xff08;英语&…

chrome浏览器 调试鼠标悬停后出现的元素样式

鼠标悬停后出现的样式&#xff0c;我们遇见的有两种情况&#xff0c;一种是用css设置的hover时的样式&#xff0c;第二种就像el-tooltip组件&#xff0c;鼠标悬停时出现提示文字的样式。 一、css设置的hover时的样式 1、按【F12】键&#xff08;或右键点击【检查】&#xff09…

星闪空口技术初探

星闪技术设计目标 在星闪技术的应用场景中&#xff0c;最低的时延要求达到了20us量级&#xff0c;比如智能座舱的主动降噪。最高的可靠性要求达到了99.9999%&#xff0c;比如智能制造的传感器与执行器的消息收发。除了低时延和高可靠之外&#xff0c;高精度同步、多并发和信息…

Linux工具——gdb

目录 一&#xff0c;gdb简介 二&#xff0c;gdb的指令 1.查看gdb是否有下载 2.需要明确的知识点 3.调试指令 1.打开调试代码 2.以某行为起点显示代码 3.打断点&#xff0c;查看断点&#xff0c;删除断点&#xff0c;禁用断点&#xff0c;启用断点 4.逐过程&#xff0c;逐…

灵活运用OSI模型提升排错能力

1.OSI模型有什么实际价值&#xff1f; 2.二层和三层网络的区别和应用&#xff1b; 3.如何通过OSI模型提升组网排错能力&#xff1f; -- OSI - 开放式系统互联 - OSI参考模型 - 一个互联标准 -- 软件硬件 - 定义标准 数据通信的标准 -- 厂商 思科 华为 华三…

【Spring】Spring Security学习笔记

基本概念 概念定义认证判断一个用户身份是否合法的过程(登录过程)会话为了避免用户的每次操作都进行认证, 将用户的信息保存在会话中. 常见的会话有基于session的模式和基于token的模式授权校验用户是否有权限访问某个资源 认证是为了验证用户的身份; 授权是为了验证用户是否有…

生长刺激表达基因2蛋白(ST2)介绍

生长刺激表达基因2蛋白&#xff08;Growth stimulation expressed gene 2&#xff0c;ST2&#xff09;&#xff0c;也称为T1&#xff0c;IL1RL1或Fit1&#xff0c;编码基因定位于染色体2q12位点上&#xff0c;约40kb。属于白细胞介素-1&#xff08;interleukin-1&#xff0c;IL…

2023华为杯数学建模研赛E题全解析

2023华为杯数学建模研赛E题解析&#xff0c;完整版已出!!! 包含所有模型、代码、结果&#xff0c;39页技术文档&#xff0c;详细内容如下! 免费版链接已放在下面&#xff0c;需要的同学可以直接自取~ 【云顶数模】2023研究生数学建模免费链接&#xff1a; https://pan.baid…

Python爬虫教程:解析网页中的元素

前言&#xff1a; 嗨喽~大家好呀&#xff0c;这里是魔王呐 ❤ ~! python更多源码/资料/解答/教程等 点击此处跳转文末名片免费获取 在我们理解了网页中标签是如何嵌套&#xff0c;以及网页的构成之后&#xff0c; 我们就是可以开始学习使用python中的第三方库BeautifulSoup筛…

194、SpringBoot -- 下载和安装 Erlang 、 RabbitMQ

本节要点&#xff1a; 一些命令&#xff1a; 小黑窗输入&#xff1a; rabbitmq-plugins enable rabbitmq_management 启动控制台插件 rabbitmq-server 启动rabbitMQ服务器 管理员启动小黑窗&#xff1a; rabbitmq-service install 添加rabbitMQ为本地服务 启动浏览器访问“h…

Goby 漏洞发布|Revive Adserver 广告管理系统 adxmlrpc.php 文件远程代码执行漏洞(CVE-2019-5434)

漏洞名称&#xff1a;Revive Adserver 广告管理系统 adxmlrpc.php 文件远程代码执行漏洞&#xff08;CVE-2019-5434&#xff09; English Name&#xff1a; Revive Adserver adxmlrpc.php Remote Code Execution Vulnerability (CVE-2019-5434) CVSS core: 9.0 影响资产数&a…

Go sync.Cond 原理

文章目录 前言newCondWaitSignalBroadcast和 channel 比较的优势 前言 sync.Cond 基本很少使用&#xff0c;应为大部分都能使用 channel 代替sync.Cond 通常是基于 sync.Mutex 扩展的主要就四个方法 newCond(l locker) 创建CondWait() 阻塞等待Signal() 唤醒其中一个Broadcast…

AI 编码助手 Codewhisperer 安装步骤和使用初体验

文章作者&#xff1a;为了自己加油 最近亚⻢逊云科技推出了一款基于机器学习的AI编程助手 Amazon Code Whisperer&#xff0c;可以实时提供代码建议。在编写代码时&#xff0c;它会自动根据现有的代码和注释给出建议。Amazon Code Whisperer与 GitHub Copilot 类似&#xff0c;…

Klotski: Efficient Obfuscated Execution against Controlled-Channel Attacks

目录 摘要引言贡献新的基于ORAM的防御控制信道攻击优化技术开源实现 背景Intel SGXORAMRing ORAM的组成ORAM树Position Map (位置图)Stash Ring ORAM的访问步骤1、Position Map Lookup 位置映射查找2、ReadPath3、EvictPath4、Early Reshuffles 早期的重新洗牌 相关工作和动机S…

vue3硅谷甄选01 | 使用vite创建vue3项目及项目的配置 环境准备 ESLint配置 prettier配置 husky配置 项目集成

文章目录 使用vite创建vue3项目及项目的配置1.环境准备2.项目配置ESLint校验代码工具配置 - js代码检测工具1.安装ESLint到开发环境 devDependencies2.生成配置文件:.eslint.cjs**3.安装vue3环境代码校验插件**4. 修改.eslintrc.cjs配置文件5.生成ESLint忽略文件6.在package.js…

gym_unity学习笔记

最近学了一段时间gym_unity&#xff0c;把一些资料留在这里 实例 实例gym_unity训练RollerBall&#xff1a;https://blog.csdn.net/alibutter/article/details/120908687实例gyn_unity训练3DBall&#xff1a;https://zhuanlan.zhihu.com/p/554927641?utm_id0 源码&#xff1…