图片加载
本仓库描述了如何从SD卡加载和显示图片到Wio Terminal的TFT LCD屏幕上。这可以非常有用,可以在各种场合下使用!
库的安装
安装Wio Terminal的SD卡库
安装Wio Terminal的TFT LCD库
图片格式配置
步骤 1: 准备图片
:::注
我们需要将图片格式转换为Windows的24位BMP格式,并将图片放置在正确的文件夹中。我们建议使用 Microsoft paint
进行转换。
:::
步骤 1-1: 使用
Microsoft paint
调整图片大小,以适应屏幕显示区域的最大像素尺寸。步骤 1-2: 然后点击
Save as
选择BMP picture
图片,然后从文件类型下拉菜单中选择24-bit bitmap (.bmp)
文件格式保存图片。步骤 1-3: 创建一个名为
bmp
的文件夹,并将Windows的.bmp
格式图片保存在此文件夹中。
步骤 2: 将 24-bit bitmap
图片转换为微控制器可读取的 8-bit or 16-bit bmp
格式。
:::注 为了在嵌入式系统上显示bmp图像,我们需要去除Windows bmp格式中的一些信息(头文件)。我们编写了一个Python脚本来完成这个任务,请选择以下两个选项之一来转换您的图片。 :::
选项 1: 使用预编译的Windows可执行文件(仅适用于Windows):
步骤 2-1-1: 我们使用 Pyinstaller{target=_blank} 软件包准备了可执行文件,您只需点击 bmp_converter.exe 即可下载可执行文件。
步骤 2-1-2: 将下载的
bmp_converter.exe
放置在与步骤步骤 1-3
中创建的bmp folder
相同的目录中。步骤 2-1-3: 双击运行
bmp_converter.exe
, 然后在弹出的命令行窗口terminal
中选择两个选项之一: "输入1
进行8位颜色转换; 输入2
进行16位颜色转换"。
选项 2: 使用Python源代码(跨平台)
:::注 您的计算机上应该已经安装了Python :::
步骤 2-2-1: 下载Python脚本 bmp_converter.py ,并将其保存在与
步骤 1-3
中创建的bmp folder
夹相同的目录中。步骤 2-2-2: 打开
cmd
或者terminal
运行Python脚本。首先,使用cd
命令切换到保存bmp_converter.py
和bmp folder
的目录,然后运行Python脚本。步骤 2-2-3: Two 两个选项: 输入
1
进行8位颜色转换; 输入2
进行16位颜色转换;
步骤 3: 准备就绪的图片
现在,您可以在 .bmp
文件夹中的 rgb332
(8-bit) 或者 rgb565
(16-bit) 文件夹中找到转换后的.bmp图片。
入门指南
安装 RawImage.h
库。
这个库用于更轻松地加载和显示图片。下载 RawImage.h
并将这个头文件附加到您的Sketch位置。
Arduino中的图片初始化
- 显示图片在屏幕上
//To draw on 8-bit color image on screen, starting from point (x, y):
drawImage<uint8_t>("path to sd card iamge", x, y);
//To draw on 16-bit color image on screen, starting from point (x, y):
drawImage<uint16_t>("path to sd card iamge", x, y);
- 初始化图像(如果使用上述的drawImage函数,则不需要)
//when using 8-bit colour, initialise the image following this:
Raw8 * img8 = newImage<uint8_t>("path to sd card image");
//when using 16-bit colour, initialise the image following this:
Raw16 * img16 = newImage<uint16_t>("path to sd card image");
示例代码
# include"TFT_eSPI.h"
# include "Seeed_FS.h" //Including SD card library
# include"RawImage.h" //Including image processing library
TFT_eSPI tft;
void setup() {
//Initialise SD card
if(!SD.begin(SDCARD_SS_PIN, SDCARD_SPI)) {
while (1);
}
tft.begin();
tft.setRotation(3);
drawImage<uint8_t>("test.bmp", 0, 0); //Display this 8-bit image in sd card from (0, 0)
}
void loop() {
}
常见问题解答
如果出现 ImportError: No module named PIL
错误:
- 在命令提示符或终端中输入
pip install pillow
安装Python模块。
技术支持 & 产品讨论
感谢您选择我们的产品!我们在这里为您提供不同的支持,以确保您使用我们的产品的体验尽可能顺畅。我们提供多种沟通渠道,以满足不同的偏好和需求。