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在电梯自动控制系统中的应用
-
-
-
-
-
-
-
酸性水汽提装置总汽提塔设计+CAD图纸
当代大学生慈善意识研究+文献综述
乳业同业并购式全产业链...
杂拟谷盗体内共生菌沃尔...
大众媒体对公共政策制定的影响
电站锅炉暖风器设计任务书
十二层带中心支撑钢结构...
河岸冲刷和泥沙淤积的监测国内外研究现状
java+mysql车辆管理系统的设计+源代码
中考体育项目与体育教学合理结合的研究