unsigned short int Width:截取图像的宽度;
unsigned short int Height:截取图像的高度;
char *filename:保存在TF卡中的文件名。
该函数首先根据接收到的文件名参数创建并打开文件。然后将按照位置参数和大小参数来构造BMP文件的信息头,写入文件。
接着,调用了bmp4()这个函数,bmp4()函数返回LCD上指定位置的像素信息。返回的单个像素信息被保存在tmp_rgb变量中。然后函数依次调用GETG_FROM_RGB16()、GETB_FROM_RGB16()和GETR_FROM_RGB16 ()这三个宏定义,从tmp_rgb变量中分别抽取出R、G、B数据并分别将其线性映射为8位数据即映射为RGB888真彩色。宏定义的内容如下所示:
#define GETR_FROM_RGB16(RGB565) ((unsigned char)(( ((unsigned short int )RGB565) >>11)<<3)) //返回8位 R
#define GETG_FROM_RGB16(RGB565) ((unsigned char)(( ((unsigned short int )(RGB565 & 0x7ff)) >>5)<<2)) //返回8位 G
#define GETB_FROM_RGB16(RGB565) ((unsigned char)(( ((unsigned short int )(RGB565 & 0x1f))<<3))) //返回8位 B
之后,截图函数将RGB888颜色信息写入刚才打开的TF卡文件中,并且根据位图宽与四字节对齐的关系来补充需要的0大小字节。所有图像信息写入完毕后,关闭该文件。
截图函数的流程图如图 3.12所示。
3.5 系统调试与分析
在程序设计的整个过程中,调试是其中不可或缺的重要组成部分。通过调试,可以及时发现程序中存在的问题与不足,并加以分析,从而制定解决方案,并修正、改进。
本系统在一次运行的过程中,发现摄像头进行拍摄照片时,MP3功能无法同时运行。具体表现在:摄像头拍照时MP3并没有发出报警声;而且在对屏幕进行截图时系统会卡死,屏幕画面不动了。
为了找出问题的原因,对其进行了调试。调试程序中所用到的工具和软件如下:
- 上一篇:ZigBee物联网网络数据收集平台设计+流程图
- 下一篇:Rockwell PLC在电梯自动控制系统中的应用
-
-
-
-
-
-
-
C++最短路径算法研究和程序设计
g-C3N4光催化剂的制备和光催化性能研究
浅析中国古代宗法制度
巴金《激流三部曲》高觉新的悲剧命运
现代简约美式风格在室内家装中的运用
上市公司股权结构对经营绩效的影响研究
江苏省某高中学生体质现状的调查研究
中国传统元素在游戏角色...
NFC协议物理层的软件实现+文献综述
高警觉工作人群的元情绪...