esp8266 水墨屏显示中文之大号字体

想要显示更大的字体,操作流程如下:
一、下载ESP8266文字显示相关库
链接: http://pan.baidu.com/s/1q9m0K2_egAmiMmD5IBfQ4Q 提取码: wtr2

二、拷贝字体文件到工程中

image.png

在字库制作->code路径下有文字相关的文件。每一种字体有两个同名的文件,分别是xx.h和xx.c文件。
字体样式如下:
image.png
拷贝某一种字体的两个文件到工程目录下。注意:这里说的目录是显示中文系列文章中的的目录。
image.png

三、导入字体文件
将自己选择字体文件导入,如 #include "u8g2_mfxinran_24_gb2312.h"
示例如下:

#include <GxEPD2_3C.h> // including both doesn't use more code or ram
#include <U8g2_for_Adafruit_GFX.h>
#include "GxEPD2_display_selection_new_style.h"
#include "u8g2_mfxinran_24_gb2312.h"

GxEPD2_3C < GxEPD2_750c_Z08, GxEPD2_750c_Z08::HEIGHT / 4 > display(GxEPD2_750c_Z08(/*CS=D8*/ SS, /*DC=D3*/ 0, /*RST=D4*/ 2, /*BUSY=D2*/ 4)); // GDEW075Z08 800x480, GD7965
U8G2_FOR_ADAFRUIT_GFX u8g2Fonts;

void setup(){
  display.init(115200);
  display.setRotation(3);    
  u8g2Fonts.begin(display); 
  u8g2Fonts.setFont(u8g2_mfxinran_24_gb2312);
  u8g2Fonts.setForegroundColor(GxEPD_BLACK);             // 设置前景色
  u8g2Fonts.setBackgroundColor(GxEPD_WHITE);             // 设置背景色
  display.firstPage();
  do
  {
    u8g2Fonts.setCursor(5, 25);
    u8g2Fonts.println("不要温顺的走进那个良夜,");
    u8g2Fonts.println("激情不能被消沉的暮色淹没,");
    // u8g2Fonts.println("咆哮吧,咆哮,痛斥那光的退缩。");
    // u8g2Fonts.println("智者在临终的时候,对黑暗妥协,");
    // u8g2Fonts.println("是因为它们的语言已黯然失色,");//");
    // u8g2Fonts.println("它们不想被夜色迷惑,");
    // u8g2Fonts.println("咆哮吧,咆哮,痛斥那光的退缩。");
  }
  while (display.nextPage());

}
void loop() {};

四、上传程序
展示如下:
image.png

本文转载于网络 如有侵权请联系删除

相关文章

  • 通过反向传播不安全分离逻辑的符号执行的增量漏洞检测

    我们提出了第一个组成的增量静态分析,用于检测c类程序中的内存安全和信息泄漏漏洞。为此,我们开发了第一个欠近似的关系程序逻辑,包括不安全分离逻辑(inssl)。我们将展示如何通过反向传播符号执行(BPSE)实现insesl的自动化,以构建一个自下向上、过程间和增量式的分析来检测漏洞。我们在Isabelle/HOL中证明了我们的方法是正确的,并在一个用于分析C程序的概念验证工具Underflow中实现它,我们将其应用到各种案例研究中。原文题目:IncrementalVulnerabilityDetectionviaBack-PropagatingSymbolicExecutionofInsecuritySeparationLogic原文:Wepresentthefirstcompositional,incrementalstaticanalysisfordetectingmemory-safetyandinformationleakagevulnerabilitiesinC-likeprograms.Todoso,wedevelopthefirstunder-approximaterela

  • 手把手教你使用Python网络爬虫获取菜谱信息

    /1前言/在放假时,经常想尝试一下自己做饭,下厨房这个网址是个不错的选择。下厨房是必选的网址之一,主要提供各种美食做法以及烹饪技巧。包含种类很多。今天教大家去爬取下厨房的菜谱,保存在world文档,方便日后制作自己的小菜谱。/2项目目标/获取菜谱,并批量把菜名、原料、下载链接、下载保存在world文档。/3项目准备/软件:PyCharm需要的库:requests、lxml、fake_useragent、time网站如下:https://www.xiachufang.com/explore/?page={}复制点击下一页时,每增加一页page自增加1,用{}代替变换的变量,再用for循环遍历这网址,实现多个网址请求。/4反爬措施的处理/主要有两个点需要注意:1、直接使用requests库,在不设置任何header的情况下,网站直接不返回数据2、同一个ip连续访问多次,直接封掉ip,起初我的ip就是这样被封掉的。为了解决这两个问题,最后经过研究,使用以下方法,可以有效解决。1)获取正常的http请求头,并在requests请求时设置这些常规的http请求头。2)使用fake_userage

  • UGL之不同的线

    欢迎关注VxWorks567今天画一些好玩的直线先看看不同的方向。uglLine()的后四个参数用来指定直线起始点的横纵坐标。可以看到某些角度时,直线有锯齿。因为WindML直接就是像素着色。要想减少锯齿(不可能完全去掉),可以提高分辨率,或者使用抗锯齿算法来做视觉欺骗,但绘制效率会大大降低再试试不同的颜色。这个也简单,直线只有前景色,使用uglForegroundColorSet()设置GC的前景色即可不同的粗细uglLineWidthSet()用于指定直线的粗细程度,至少为1。可以看到,直线变粗后,长度也略有增加。因为粗线就相当于矩形,两个端点变成了两条边,而这个边,也有了厚度不同的虚实比例虚线,其实就是每个bit位用1或0表示是否绘制实线不同的光栅效果指的是待绘制图像颜色与背景色的叠加关系,有四种:copy、and、or、xor 有兴趣的,可以口算一下‘与、或、异或’关系,再试试其它模式(例如虚线)的光栅效果 我是泰山,专注VX15年!一起学习,共同进步!

  • Netflix如何通过重构视频Gatekeeper提升内容运营效率?

    Gatekeeper是Netflix的视频内容评估管理平台,可以展示视频剧集的metadata,如合同信息、字幕、标题、内容分级等。但此前,运营人员无法通过Gatekeeper实时更新剧集信息,本文将介绍新的gatekeeper架构,以及因此获得的收益。文/DrewKoszewnik译/John原文https://medium.com/netflix-techblog/re-architecting-the-video-gatekeeper-f7b0ac2f6b00 此文将与您分享我们的内容设置工程团队如何使用基于NetflixOSS技术的,被称为“Hollow”的Java库与工具包,简化并重新构建内容传输基本组件的历程———这段经历带给我们产业价值方面的收获,令我们受益匪浅。上下文Netflix平台上的每部电影与电视节目都经过精心策划以确保观众可以收获最佳观看体验,负责此策划展示的团队是“TitleOperations”(标题运营)团队。此团队负责运营并确保以下事项无误:●视频内容遵守合同或协议-视频拥有正确的日期范围与可被公开的合理标题。●视频带有字幕,字幕与配音正确无误且能够为世

  • 程序员又“作死”了,这次是用AI算法一键“脱”衣,遭全球网友炮轰

    来源:扩展迷EXTFANS(id:infinitydaily) AI换脸的问题尚未解决,今天又有一位程序员“剑走偏锋”,引发了新一轮社会谴责。美国科技媒体Motherboard报道,一名程序员最近开发出一款名叫DeepNude的应用。只需要上传一张女性照片,该应用就能借助神经网络技术,自动移除女性身上的衣服并“填补”出裸体。这与昨天我们扒皮的“原谅宝App”不同,DeepNude的确是使用了AI算法的——它能用裸露的器官和皮肤替换人物身上的衣物。Motherboard使用DeepNude测试了TaylorSwift、NataliePortman等女星的照片,无一例外都成功了。尽管放大细节来看,用算法“填补”的部分仍然有人工痕迹,但如果被有心人利用,这些图片也足以以假乱真了。虽然他们可以通过PS达到同样甚至更好的效果,但这个高效率工具依然可能引发更多的恶劣后果。开发者“阿尔贝托”(Alberto)接受采访时表示,该应用基于开源算法pix2pix创建,并使用1万张女性裸图加以训练。这一算法与AI换脸和无人车技术所使用的算法相似。Alberto表示,该算法仅适用于女性,因为裸体女性的图像更容

  • CSS中有关布局的属性设置

    版权声明:本文为博主原创文章,转载请注明出处。https://blog.csdn.net/gongxifacai_believe/article/details/913592691、CSS中区块的使用属性名称属性值说明width像素/百分比区块的宽度widthauto自动调节宽度height像素/百分比区块的高度heightauto自动调节高度min-height像素/百分比区块最小高度min-heightauto自动调节最小高度max-height像素/百分比区块最大高度max-heightauto自动调节最大高度min-width像素/百分比区块最小宽度min-widthauto自动调节最小宽度max-width像素/百分比区块最大宽度max-widthauto自动调节最大宽度2、CSS中浮动的使用属性名称属性值说明floatnone正常显示floatleft左浮动floatright右浮动clearnone允许两边浮动clearleft不允许左边浮动clearright不允许右边浮动clearboth不允许两边浮动3、CSS中定位的使用属性名称属性值说明positionrelat

  • Java 集合框架(8)---- 总结

    前言在之前的文章中我们介绍了一下Java集合框架中的一些类并对一些常用的类的源码和设计理念进行了解析。那么在这篇文章中我们来将之前介绍过的一些集合类做个总结,并补充一些没有涉及到的知识点。我们从几个不同的角度来进行分类。在此之前我们来看看整个Java集合框架的类图:接下来根据不同的分类角度来进行分类,首先是按集合类别:集合类别线性集合类说到线性集合类我们脑海里第一个想到的基本上都是ArrayList,确实,这个类太常用了,当然除了这个类,Java集合框架中还有一些其他的有用的线性集合类,我们来一一看一下ArrayList具体的解析可以参考:ArrayList这里直接说结论了:ArrayList内部通过数组来保存元素,默认初始容量为10,之后以1.5倍进行扩容。每次扩容时新建一个新的数组,然后将原数组中的元素复制到新数组中(直接复制引用),之后将原数组中的元素清除,数组引用指向新的数组。插入元素和删除元素的时间复杂度都是O(n),获取元素的时间复杂度为O(1),ArrayList是非线程安全的类。LinkedList、Queue、Deque具体的解析可以参考:LinkedListLink

  • 紧握IoT+AI安全机遇 | 对话京东安全首席架构师程岩

    由FreeBuf.COM主办的WitAwards2018互联网安全年度评选已接近尾声。本次评选周期历时3个月,评委包括顶尖行业专家、行业媒体和安全从业者,是目前国内极具公信力和影响力的行业评选活动,颁奖盛典将在FreeBuf2019互联网安全创新大会(FIT2019)举行。今年,组委会邀请了超过60位来自国内安全厂家、企业安全部门、政府相关单位、研究机构、行业协会、专业媒体的信息安全知名专家和学者组成专家评委团队,全方位、多角度综合分析、公正评判每一个参评对象。这次小编邀请京东安全首席架构师程岩来聊一聊他在【企业IoT+AI安全建设】方面的心得。IoT毫无疑问是这两年的热点,而IoT安全话题往往围绕着智能设备或者工业应用场景展开,鲜有人讨论IoT在企业自身的应用以及相关安全体系问题。程岩其人昵称:暗夜潜风、d4rkwind,熟悉他的人通常叫他“小哥”。企业安全及云安全领域专家,拥有丰富的大型甲方企业安全建设及云计算安全规划和实践经验,在安全圈可谓是不折不扣的“老法师”了。目前就职于京东集团,担任京东安全首席架构师,并兼任基础安全部及安全运营部负责人。在入职京东前,程岩于2010年加入百

  • 分布式下引发的并发问题

          情景一: 客户端超时时间(CT)小于服务端超时时间(ST)。【调整时间大小】   当客户端调用服务端向数据库发起请求时,假如是个大数据量提交, 假如客户端超时时间为10s,服务端超时时间为15s 当提交等待时间为12s时,客户端已经返回错误,而服务端未超时。 最后12s后服务端提交成功。而客户端返回失败。     情景二: 1、分布式锁超时时间小于业务超时时间【调整时间大小】 2、数据库里相关字段没有唯一索引【增加唯一幂等性验证】   那么如果线程A提交的数据出现问题(如大数据提交等),处于等待状态,并获得分布式锁。 而线程B、C...也来提交,由于分布式锁,访问被拦截。 当分布式锁超时时间结束时,线程Z刚好提交。 如果数据库缺少唯一性索引,此时线程A与线程Z可能同时提交成功。     情景三: 1、分布式锁超时时间小于业务超时时间【调整时间大小】 2、业务有重试机制 3、数据库里相关字段没有唯一索引【增加唯一幂等性验证】 (1)由于数据库连接数被占满,流水1创建的事务处于等待

  • SSH连接服务器 本地记住用户名及密码

    因为需要经常登陆服务器,每次输入密码太麻烦,而正好有办法可以解决这个麻烦~ 一、记住密码1、本地生成一对公钥密钥ssh-keygen-trsa 中间会让你确认生成目录,默认存放在本地用户的~/.ssh目录下回车就好 会生成:id_rsa(密钥)id_rsa.pub(公钥) 这是我之前生成过的 如图   2、把公钥放到服务器上方式一: 本地命令行执行 scp~/.ssh/id_rsa.pubroot@39.97.170.231:~/.ssh/authorized_keys 方式二: 本地命令行执行 ssh-copy-id~/.ssh/id_rsa.pubroot@39.97.170.231 方式三: 打开~/.ssh/id_rsa.pub,复制里面内容,粘贴到服务器~/.ssh/authorized_keys文件中,保存退出 至此,再次登陆服务器就不会提示你输入密码啦 二、记住用户名3、本地需要保存ssh登陆主机的相关信息,在用户根目录下的.ssh文件内创建config文件,用于保存ssh登陆主机的相关信息vimconfig 编辑内容: Hostname#AAAAA为服务器主机

  • mongodb通过非映射方式操作documnet

    前言   我是MongoDB小白,刚开始学。不过,我猜大多数使用MongoDB的,都是采用映射方式处理的,即需要有定义好的用于映射的实体类。但是这样的话,如果表的结构在未来可能频繁变动,增删字段,甚至添加新的数据表。那么这种方式就不太好用了。这时候就需要用非映射的方式处理。 映射方式操作Document   这种方式最常见,一般就是预定义一些映射的实体类,然后打上@Ducument注解。在使用MongoTemplate的查询文档的时候,一般就是根据查询语句创建一个Query对象,然后用MongoTemplate.find(query,entityClass)这样的方式,就可以返回对应的实体对象集合。这样的例子非常多,我这里就不贴代码了。 非映射方式操作Document   非映射方式操作Document,就是不需要预定义实体类,也就是没有实体类。我们只需要JSON数据就可以了。而刚好Document对象有提供toJson方法,可以返回一个JSON字符串。非映射方式不能直接用MongoTemplate直接find,而是要先获取集合对象,然后,在集合内部,相当于在表内部查询。  例子

  • 运行结果

    client端的log: E/MessengerClient:mService.sendE/MessengerClient:mService.sendhandleMessagehandleMessage:510E/MessengerClient:handleMessagehandleMessage:510Server端的log: E/MessengerService:handleMessageE/MessengerService:handleMessageE/MessengerService:handleMessageE/MessengerService:handleMessageE/MessengerService:handleMessage    

  • vue监听不到props中的值时

    已解决: watch:{   data:{     immediate:true,     handler:function(newVal){       console.log(newVal);     }   } },

  • docker build 报错ADD failed: stat /var/lib/docker/tmp/docker-builder964944550/software/jdk8/jdk1.8.0_191: no such file or directory

    Dokerfile FROMcentos:latestMAINTAINER"lcy@qq.com"ADD/software/jdk8/jdk1.8.0_191/jdk/jdk1.8.0_191ENVJAVA_HOME/jdk/jdk1.8.0_191ENVPATH$PATH:$JAVA_HOME/bin 构建镜像报错如下: root@iZwz9hb3esnbp5jod6mregZ:/data/dockerFiles#dockerbuild-tcentos_jdk8:base.-fDockerfileSendingbuildcontexttoDockerdaemon2.048kBStep1/5:FROMcentos:latestlatest:Pullingfromlibrary/centos6910e5a164f7:PullcompleteDigest:sha256:4062bbdd1bb0801b0aa38e0f83dece70fb7a5e9bce223423a68de2d8b784b43bStatus:Downloadednewerimageforcentos:latest---&g

  • Codeforces Round #368 DIV2 C.

    简单题意:给出x(x<=1e9),求一组包含x的勾股数 我好像没什么思路啊,先分类讨论吧 首先x是斜边: x^2=a^2+b^2 似乎除了枚举a没有什么好办法 再试试x是直角边 a^2+x^2=b^2 试着把式子变形  (b+a)(b-a)=x^2 这个就好办了,我们考虑把x^2分成两个数的积,显然只要这两个数奇偶性相同并且不相等,我们就能找到一组合法的a,b 然后你发现,除了x=1和x=2都有解,如果x是偶数先把x=x/2分给a,b各一个2,然后分成x^2*1即可 1#include<iostream> 2#include<cstdlib> 3#include<cstdio> 4#include<algorithm> 5#include<string> 6#include<cstring> 7#include<cmath> 8#include<map> 9#include<stack> 10#include<set> 11#include<

  • diamond开发工具之reveal的使用-----lattice

                                         Reveal使用说明       最近真的是太忙太忙了,所以好久都没有写帖子了,以前本想每天都写一些帖子,分享自己调试学习过程中遇到的问题,让lattice爱好者门快速入门。不发牢骚了,以后只要有时间都写一些帖子分享给大家吧。    第一步:插入revealinserter,点击图标,之后出来一个对话框,如下   你要看什么信号,就在designtree(上图左中)中把他们拖到trace(上图中上)下面,然后把采样时钟拖到sampleclock中(上图中中),设置好之后就点击triggers

  • Video.js 截图 Failed to execute &#39;drawImage&#39; on &#39;CanvasRenderingContext2D&#39;

       流媒体服务有一项功能是抓图,也就是从正在播放的视频流中获取图片。这个功能可以在服务 端实现,具体的思路也比较简单从视频流中获取一帧关键帧,解码后保存成一张图片并推送给请求 客户端就可以了。服务端实现简单但存在一个缺点-:实时性不高。经常抓到的图是数秒以后的图片。 其原因是客户端有播放延时,一般情况下公网下Web客户端播放rtmp及rtsp流延时在1-2S之间,播放 hls流延时在3-5S,这就意味着从正在播放的rtmp及rtsp流中抓图,基本上是1-2S以后的图片,从正 在播放的hls流抓图基本上是3-5秒以后图片。为此,再提供一种抓图模式:Web前端抓图。    H5可以直接利用“video标签”截图,基本代码如下: <!doctypehtml> <html> <head> <metacharset="utf-8"> <title>视频截图</title> <script> window.onload=function(){ var

  • jetty之maven配置

    <!--jetty插件配置--><plugin><groupId>org.mortbay.jetty</groupId><artifactId>jetty-maven-plugin</artifactId><version>7.1.6.v20100715</version><configuration><stopPort>9988</stopPort><stopKey>foo</stopKey><scanIntervalSeconds>5</scanIntervalSeconds><connectors><connectorimplementation="org.eclipse.jetty.server.nio.SelectChannelConnector"><!--jetty端口设置--><port>8080</port><maxIdleTi

  • Git 提交备注规范

    原文:https://blog.csdn.net/samjustin1/article/details/81737284?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task feat:新增featurefix:修复bugdocs:仅仅修改了文档,比如README,CHANGELOG,CONTRIBUTE等等style:仅仅修改了空格、格式缩进、逗号等等,不改变代码逻辑refactor:代码重构,没有加新功能或者修复bugperf:优化相关,比如提升性能、体验test:测试用例,包括单元测试、集成测试等chore:改变构建流程、或者增加依赖库、工具等revert:回滚到上一个版本   Git分支与版本发布规范 基本原则:master为保护分支,不直接在master上进行代码修改和提交。开发日常需求或者项目时,从master分支上checkout一个feature分支进行开发或者bugfix分支进行bug修复,功能测试完毕并且项目发布

  • Ubuntu 安装Maven步骤

    Ubuntu安装Maven步骤   原文链接:https://www.jianshu.com/p/1b126d810e88   首先,我用的系统是Ubuntu16.04LTS,编辑器用的Sublime,Maven以3.5.0为例 第一步,去官网下载maven。 官网下载页面.png 第二步,解压到/opt/maven目录(我安装在这个目录) 创建manve目录。   sudomkdir/opt/maven 复制   解压到/opt/maven目录下。   sudotarzxvfapache-maven-3.5.0-bin.tar.gz-C/opt/maven 复制   第三步,配置mavne环境。 sudosubl/etc/profile在文件内容后面添加以下内容: exportM2_HOME=/opt/maven/apache-maven-3.5.0 exportCLASSPATH=$CLASSPATH:$M2_HOME/lib exportPATH=$PATH:$M2_HOME/bin复制

  • c#设计模式-观察者模式

    Observer与Subject 互为耦合,但是这种耦合的双方都依赖于抽象,而不依赖于具体。 一、观察者模式 目的 概述 原理 二、   C#中的观察者模式 概述 模型与观察者基类 优点 三、   事例 题目:猫大叫,两只老鼠开始逃跑,主人醒来,宝宝也醒来了并且哭了起来 解决方案: 1.    建立模型(目标基类) 2.    建立观察者基类(单行为,多行为) 3.    建立具体目标 4.    建立具体观察者 5.    运行测试   一、      观察者模式 目的 我们都知道解决一个问题有N种解决方式,但在面向对象的设计中如何能做到“高内聚,低耦合”,设计

相关推荐

推荐阅读