网站大量收购独家精品文档,联系QQ:2885784924
  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数码相框1

嵌入式系统综合设计说明书 题 目: 电子相框 学生姓名: 郭伟 组 别: 第四组 学 院: 信息工程学院 班 级: 计07-3 指导教师: 刘志强 王小强 邢文朋 郭文茂 二O一O 年 十二 月 十三 日 目录 设计任务与要求 1 设计功能 1 设计思路 1 软件设计 2 源程序清单与注释 2 图片特效函数文件清单 2 Main文件程序清单 4 调试过程 6 实验步骤 6 出现问题 6 解决方法 6 体会 7 设计功能 该课程设计的主要内容是:在linux(ubuntu版本)嵌入式系统下利用C语言开发一个具有多样式动态特效的电子相框,要求对图片或文字的效果处理。 设计思路 在应用程序中,先用 FrameBuffer设备(/dev/fb0)映射到进程地址空间(即:锁定屏幕各像素点),再进行 mmap 系统调用进行地址映射(在屏幕上打点),随后用 memset 将屏幕清空。通过freetype库中函数的font可设置和控制字体样式,采用jpeg-8算法解压缩图片。采用C语言的过程设计方法来实现流程的控制和实现图片特效设计。使用回调函数实现图片的动态循环调用,并利用双缓存技术实现图片显示的优化,以提高效率,消除图片显示时因为不同步所导致的抖动现象。 软件设计 源程序清单与注释 图片特效函数文件清单 #include math.h #include stdlib.h #include stdio.h #include unistd.h #include fcntl.h #include sys/mman.h #include sys/stat.h #include common.h #define DEBUG 0 #if DEBUG #endif //点到圆 int display_jpeg4(char *filename, fb_info fb_inf) { fb_info jpeg_inf; u8_t *buf24 = decode_jpeg(filename, jpeg_inf); u8_t * scale_buf = scale24(buf24, fb_inf, jpeg_inf); u32_t *buf32 = rgb24to32(scale_buf, fb_inf); int i; int j; int k; int x=fb_inf.w/2; int y=fb_inf.h/2; int r=0; for(i = 0; i fb_inf.h; ++i){ for (j = 0; j fb_inf.w; ++j){ fb_pixel(fb_inf, j, i, 0x050505); } } while(r=fb_inf.h/2){ for(i=x+r;i=x;i--){ for(j=y;j=y-r;j--){ k=(x-i)*(x-i)+(y-j)*(y-j); if(r*r=k){ fb_pixel(fb_inf,i, j, buf32[i + j * fb_inf.w]);} } } for(i=x-r;i=x;i++){ for(j=y;j=y-r;j--){ k=(x-i)*(x-i)+(y-j)*(y-j); if(r*r=k){ fb_pixel(fb_inf,i, j, buf32[i + j * fb_inf.w]);} } } for(i=x-r;i=x;i++){ for(j=y;j=y+r;j++){ k=(x-i)*(x-i)+(y-j)*(y-j); if(r*r=k){ fb_pixel(fb_inf,i, j, buf32[i + j * fb_inf.w]);} } } for(i=x+r;i=x;i--){ for(j=y;j=y+r;j++){ k=(x-i)*(x-i)+(y-j)*(y-j); if(r*r=k){ fb_pixel(fb_inf,i, j, buf32[i + j * fb_inf.w]);} } } r=r+2; usleep(2000); } usleep(1000); free(buf24); free(scale_buf); free(buf32); return 0; } //由两边向中间靠拢 int display_jpeg12(char *filename,fb_info fb_inf) { fb_info jpeg_inf; u8_t *buf24=decode_jpeg(filename,jpeg_inf); u8_

文档评论(0)

f8r9t5c + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8000054077000003

1亿VIP精品文档

相关文档