ESP32解码显示JPG和PNG图片

news/2025/1/21 23:21:40/

文章目录

  • 驱动屏幕
  • 显示PNG图片
  • 显示JPG图片

本文介绍ESP32在Arduino中通过TFT_eSPI库直接解码显示JPG和PNG图片,免去转为将图片转换为BMP再转为十六进制的步骤,使用的软硬件有:ESP-WROOM-32、240*320屏幕(ILI9341驱动)、Arduino

驱动屏幕

首先要保证Arduino下载了TFT_eSPI库,ESP32与屏幕的连线正常,示例程序编译上传后能够正常显示,关于如何使用ESP32驱动ILI9341屏幕,在我之前的博文中有详细介绍,本文默认已经能够正常驱动屏幕。

显示PNG图片

打开示例程序TFT_eSPI—PNG Images—Flash_PNG
在这里插入图片描述
直接编译会有以下错误:PNGdec.h: No such file or directory,这是因为此程序依赖PNGdec库,用于解码PNG文件,打开Arduino—工具—库,搜索PNGdec安装即可。
在这里插入图片描述
再编译上传,一切顺利的话,屏幕就会显示默认的熊猫图片了。
在这里插入图片描述
想要显示自定义的png图片,根据主程序中的注释操作
在这里插入图片描述
点击它提供的网址,在网页里先点选择文件,这里选择准备好的png文件,建议根据实际屏幕修改分辨率,以达到最佳显示效果,节省存储空间。然后按照下图所示操作即可。
在这里插入图片描述
将png文件转换来的十六进制数组粘贴到Arduino程序中,编译上传。
在这里插入图片描述
如果操作无误,屏幕即可显示自定义的png图片
在这里插入图片描述

显示JPG图片

与显示PNG图片原理大致相同,不过在ESP32上稍有不同,需要在Arduino的工具—库管理中搜索安装TJpg_Decoder库。
打开示例程序TJpg_Decoder—Flash_array—ESP32_Dual_Core_Flash_Jpg,因为ESP32是双核CPU,因此在此程序中使用了一个核心来解码,另一个来显示,充分利用双核心加快了速度,推荐在ESP32上使用。
在这里插入图片描述
如果直接编译可能出现以下错误:fatal error: LittleFS.h: No such file or directory
在这里插入图片描述
那么打开找到TJpg_Decoder库的安装目录,电脑用户名、安装目录不同可能有所差异,可参照我的查找:C:\Users\ZJC\Documents\Arduino\libraries\TJpg_Decoder\src,打开TJpg_Decoder.h文件,找到第23行,注释掉即可。
在这里插入图片描述
重新编译上传,如果一切正常,屏幕会显示和上面一样的默认的熊猫图片。

如何自定义jpg图片呢,点击panda.h,前面有一个网址,双击打开它。
在这里插入图片描述

准备好jpg图片文件,同样最好根据实际屏幕显示修改分辨率,以达到最佳显示效果和节省存储空间。
在这里插入图片描述
然后将复制的内容替换panda数组原有内容,编译上传。
在这里插入图片描述
如果一切正常,即可在屏幕上看到自定义的jpg图片:
在这里插入图片描述
至此就实现了png图片和jpg图片的解码和显示,两种文件都需转换为十六进制数组,存储在flash中。


http://www.ppmy.cn/news/836942.html

相关文章

异常参数处理:如何处理前端传递的非法参数,确保系统安全稳定

当前端将参数传递给后端时,考虑到各种异常情况,以下是对应的解决示例: 缺少必要的参数: 异常情况:前端未传递必要的参数,导致后端无法正常处理请求。 解决方案:在后端进行参数校验,如…

【科研绘图】MacOS系统OmniGraffle实用指南

用过不少绘图软件,包括Visio (only for Windows)、ProcessOn、draw.io等主流软件,然后换Mac后尝试了实验室在用的OmniGraffle,才第一次感受到了绘图软件的人性化和强大! 实用操作总结 按住Shift后调整元素位置或调整线段&#x…

六、多媒体基础知识

多媒体:对多种媒体的融合,能够同时采集、处理编辑、存储、展示2个及以上不同类型信息媒体的技术。这些信息媒体包括:文字、声音、图形、图像、动画、活动影像…… 1.多媒体的基本概念 媒体:1.信息的物理载体(存储、传递…

E6全部刷机包

此版本号基于R533_G_11.11.10P_GSZMCAUT679DA01B_LP064DA_T679DA_S005_E001_P002_R001_G004_1FF.sbf制作耳机接听或挂机正常内置Loader(asmotoe2)、Console(网上的大侠)、showQ(bint大侠)、SetupPKG&#x…

多媒体技术复习题

多媒体技术复习题 一. 选择题 1. 所谓媒体是指:( b ) A. 二进制代码 B. 表示和传播信息的载体 C. 计算机输入与输出的信息 D. 计算机屏幕显示的信息 2. 帧频率为25帧/秒的电视制式有( b &…

转载:ffmpeg 音视频合成分割

http://blog.csdn.net/jixiuffff/article/details/5709976 当然先安装了 gentoo 下一条命令搞定 emerge ffmpeg 格式转换 (将file.avi 转换成output.flv) ffmpeg -i file.avi output.flv -i 表示输入文件 :现在有个视频video.avi,有个音频 audio.mp3&#xff0…

百万级日活 App 的屏幕录制功能是如何实现的

Android 从 4.0 开始就提供了手机录屏方法,但是需要 root 权限,比较麻烦不容易实现。但是从 5.0 开始,系统提供给了 App 录制屏幕的一系列方法,不需要 root 权限,只需要用户授权即可录屏,相对来说较为简单。…

linux——ekho7.7.1(最新版)语音合成库的安装与编译

前言 ~~~~~ TTS技术,TTS是Text To Speech的缩写,即“从文本到语音”。它将计算机自己产生的、或外部输入的文字信息转变为可以听得懂的、流利的汉语口语(或者其他语言语音)输出的技术,隶属于语音合成(Speec…