2022年数码相框嵌入式大作业报告.pdf

上传人:H****o 文档编号:14225893 上传时间:2022-05-03 格式:PDF 页数:5 大小:43.71KB
返回 下载 相关 举报
2022年数码相框嵌入式大作业报告.pdf_第1页
第1页 / 共5页
2022年数码相框嵌入式大作业报告.pdf_第2页
第2页 / 共5页
点击查看更多>>
资源描述

《2022年数码相框嵌入式大作业报告.pdf》由会员分享,可在线阅读,更多相关《2022年数码相框嵌入式大作业报告.pdf(5页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、武汉工业学院数学与计算机学院嵌入式系统开发实验报告专业: 计算机科学与技术班级: 0805011学号: 0姓名: 赵文浩指导老师 : 易 奎2011 年 12 月 2 日精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 1 页,共 5 页 - - - - - - - - - - 课题名:动态数码相框一. 实验目的通过本次实验,系统地复习在课堂上学习的理论知识,涉及到的主要知识点有Linux 环境下 Smb、NFS等服务器的配置与使用;程序的编译、运行操作以及交叉编译和运行的过程;Makefile 文件以及s

2、hell 脚本的编写; JPEG 库的使用以及图像显示的基本原理(帧缓存 FrameBuffer) 。二. 实验环境软件环境:上位机为Windows XP 系统,目标机为Linux 的系统。硬件环境:上位机为基于X86 体系的传统PC,目标机为创维特的ARM9 开发板。开发工具: vi 编辑器, gcc 本地编译器以及arm-linux-gcc3.4.1 交叉编译工具,smb、nfs等服务器工具。三. 实验原理在本实验中要显示jpeg 格式的图像, 需要用到 libjpeg, libjpeg 是一个被广泛使用的JPEG压缩 /解压缩函数库,对于libjpeg 而言,图像数据是一个二维的像素矩阵

3、。对于彩色图像,每个像素通常用三个分量表示,即R(Red) 、G(Green) 、B(Blue)三个分量,每个分量用一个字节表示,因此每个分量的取值范围从0 到 255;对于灰度图像,每个像素通常用一个分量表示,一个分量同样由一个字节表示,取值范围从0 到 255。在 libjpeg 中,图像数据是以扫描线的形式存放的。每一条扫描线由一行像素点构成,像素点沿着扫描线从左到右依次排列。对于彩色图像,每个分量由三个字节组成,因此这三个字节以R、G、B 的顺序构成扫描线上的一个像素点。另外由于我们实验环境所用的Framebuffer设备的颜色深度为16位,颜色格式为5-6-5 格式即R(红色)在16

4、bit 中占据高5 位, G(绿色)在16bit 中占据中间6 位, B(蓝色)在16bit 中占据低5 位;而 libjpeg 解压出来的图像数据为24 位RGB格式,因此必须进行转换。对于24 位的 RGB ,每个字节表示一个颜色分量,因此转换的方式为:对于R 字节,右移3 位,对于 G 字节,右移2 位,对于B 字节,右移3 位,然后将右移得到的值拼接起来,就得到了16 位的颜色值。有了上述通过Framebuffer 画点的基础,将通过 libjpeg 编码获得的每个像素点的16 位值分别写入内存即可获得一副完整的图精品资料 - - - 欢迎下载 - - - - - - - - - -

5、- 欢迎下载 名师归纳 - - - - - - - - - -第 2 页,共 5 页 - - - - - - - - - - 像。有了上述的基础,通过更改图像文件的获取方式、图片的像素点向内存写的方式等可以获得循环播放加了特效(如百叶窗)多幅图片的效果。四. 实验步骤1、首先获能取libjpeg 库的源文件,更改其配置文件后进行交叉编译,并且进行安装。具体步骤是首先进入源文件内,输入命令./configure -enable-shared ,产生 Makefile 文件,然后修改 Makefile 文件的配置参数如下:prefix=/usr/local/arm3.4.13.4.13.4.13.

6、4.1image/*doif $f != $0 thenecho $f image_listfidone3、建立图片信息的双向循环链表,首先需要建立一张图片信息的结构体如下struct image char imgname20;struct image *prev;struct image *next;然后访问shell 脚本建立的临时存放图片文件名(包含访问路径)的文本文件,建立双向循环链表,如下:fd = fopen(image_list,r);/访问临时文本文件if(fd=NULL) exit(EXIT_FAILURE);精品资料 - - - 欢迎下载 - - - - - - - - -

7、 - - 欢迎下载 名师归纳 - - - - - - - - - -第 3 页,共 5 页 - - - - - - - - - - p1 = (struct image *)malloc(sizeof(struct image);size = getline(&line,&len,fd);/获取文本的第一行信息即第一张图片的完整路径strncpy(p1-imgname,line,strlen(line);head = p1;while(size = getline(&line,&len,fd) != -1) p2 = p1;p1 = (struct image *)malloc(sizeof(

8、struct image);strncpy(p1-imgname,line,strlen(line);p2-next = p1;p1-prev = p2; / 通过循环不断创建节点并连接起来成为一个双向循环链表p1-next = head;head-prev = p1;p1 = NULL;p2 = NULL;/无用的指针置空避免错误system(rm -rf image_list);/调用系统命令删除临时文件4、图片显示实现,由于一张jpeg 图片通过 jpeg 编码后的颜色表示是24 位的,故首先需要将 24 位的颜色深度改为16 位的颜色深度, 然后将图片的分辨率改成目标机屏幕的分辨率,最

9、后通过显示图片的每一个像素点来显示整幅图片。本程序添加了一个百叶窗效果,实现原理是图片的所有像素点按传统的顺序显示,而是将一个图片分为上下两大块,这两块独立的从上到下显示其所有像素点,就可以达到一个百叶窗的效果。void display_scale_jpeg(char *filename)unsigned char *buf24;short imgw,imgh;精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 4 页,共 5 页 - - - - - - - - - - int i,j;short color

10、;buf24=decode_jpeg(filename,&imgw,&imgh);buf24to16(buf24,imgw,imgh);/颜色深度转换(24 位转换成16 位)scale(unsigned short *)buf24,imgw,imgh);/换算屏幕的分辨率for(j=0;jOH/ 2;j+)for(i=0;iOW;i+)color=obufj*OW+i;alpha_16point(i,j,color,200);for(i=0;iOW;i+)color=obuf(j+OH/ 2)*OW+i;alpha_16point(i,(j+OH/ 2),color,200);usleep(10000);精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 5 页,共 5 页 - - - - - - - - - -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁