ARM板实现触控幻灯片

以前看到有些同学的项目,在ARM板上接着的LCD屏幕上播放动画,效果十分酷炫。后来自己也实现了,其基本无非就是控制LCD屏幕显示图片。以下就以24位图为例,介绍让LCD显示图片的方法。24位图是指由分别用8位二进制来表示图像B、G、R值的图片,亦即每个像素点都由24位组成。

环境:ARM Cortex开发板(预装有Linux系统),PC(ubuntu)

首先准备一张图片,可以菜单栏打开画图工具,调整图片大小至适合LCD尺寸,由于我手上的是800*480的LCD,故选择800*480的画布作图,并保存为24位图。


示例图片:


要注意的是,LCD屏幕显示是32位的,即αRGB(多了一个透明度),而我们所要显示的bmp位图是24位且为BGR的,这么一来,我们至少就要解决两个问题:

一个是思考 *如何将24位扩展到32位,另一个问题则是**如何将BGR调转顺序为RGB

按计算所用位图的文件大小本应该是800*480*4=1152000字节的,但是由于图片实际上还存储着文件头信息,所以实际大小要再多出54个字节,这是读取图片时需要注意的。文件头信息跟我们需要显示的像素点无关,故在读取图片信息并显示时我们需要思考***如何只截取像素点信息

另外,LCD的显示与图片的存储是上下颠倒的,所以还要****将图片上下调转再显示。

 

总体来说,实现思路如下:

①访问图片及LCD

②处理图片,包括截取有用的数据、扩展位、调换RGB存储顺序、上下调转

③将图片写入LCD

④回收图片及屏幕资源


首先从IO目录操作开始:(打开目录 -> 进入目录 -> 读取目录 -> 关闭目录)

需要调用到的IO函数:
目录IO         
opendir

       #include <sys/types.h>
       #include <dirent.h>

       DIR *opendir(const char *name);

closedir

       #include <sys/types.h>

       #include <dirent.h>

       int closedir(DIR *dirp);

chdir

       #include <unistd.h>

       int chdir(const char *path);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值