当胶卷退出我们普通人的生活之后,拍摄-冲洗胶卷-扩印照片的经典流程也渐渐从我们身边消失。取而代之的是,大量的数码相机用户群和种类繁多的各种存储介质。数码相框则是目前回放这些照片的最好途径,作为浏览数字照片的核心产品,数码相框正迎合了消费者的需求。

1、 系统需求分析

许多人不明白数码相框的魅力到底在哪里。时下拍摄的数码相片开始呈现出了几何级数的增长,要想再把这些相片都冲印出来回味、欣赏,浪费大量金钱不说,传统的相框、相册也无法再承担起保存的重任。数码相框将彻底解放那些积压下来的数码相片,让你人生中值得记忆的每一个瞬间从此不再被埋没在硬盘里面。数码相框可以用来美化家居,构造精致生活享受。分享快乐、展示成功;带给父母,缓解思念;或者带入办公室,消解工作压力。

而和传统的相框相比,数码相框也具备了很多的优势。数码相框采用了普通相框的外形,而且更为精致,用液晶显示屏来显示照片,配上电源、存储介质等,使多张相片能够在显示屏上循环播放,有的数码相框还增加了MP3和MP4等多媒体娱乐功能,比普通相框的单一功能更有优势。

作为消费类电子产品,数码相框必须考虑以下几个方面的功能:

1)用户界面及接口友好,操作简便。作为一个消费类电子产品,它的客户是多样化的,其中大部分都是非专业化的,甚至是老人或者是小孩,操作是否人性化、简洁化,成为能否让用户迅速接受产品的重要因素。

2)系统兼容性强,数码相框应该能够识别和处理当前数码相机拍摄图像格式,能够访问主流的半导体存储外设。

3)存储可靠,作为存储设备,必须通过严格的功能测试,以保证用户在使用过程中不丢失信息。

鉴于此,数码相框产品的主要功能应包括以下方面:

1)支持主流半导体存储卡,能从中读取图像文件。

2)在LCD屏中全屏循环显示多幅图像文件,支持各种主流格式。

3)显示时间和日期

4)可通过按钮或触摸屏进行操作。

2 、系统总体设计

基于Linux下使用Qt编写的数码相框架构设计方案通过使用纯C++++语言开发来支持嵌入式Linux系统,采用Qt/Eembedded作为GUI来提供强大的用户界面,设计位于Linux用户空间的目的是为了系统移植性。

本项目的系统架构由以下几个层次组成:

1)底层硬件。本设计采用凌阳的A8实验箱为三星S5PV210。

2)驱动程序

3)操作系统。一台装有Ubuntu系统或装有Ubuntu虚拟机的PC机。

4)Qt应用程序

本项目所设计的数码相框主要采用Qt为主的程序设计方案,配合A8实验箱就做成了一款数码相框。数码相框在初始化时会扫描指定目录下的所有支持的图片文件,用户可以通过按钮实现前翻或者后翻,并且可以进行放大和缩小的操作。

3、 实现数码相框项目流程

首先搭建系统,其中包括PC平台Linux虚拟机环境建立、ARM平台Linux系统搭建。使用Qt编程实现。常见的Qt应用程序的开发有两种方式:

第一种使用文本编辑器编写C++代码,然后在命令行下生成工程并编译;

第二种使用QtCreator编写C++代码,并为Qt Creator安装Qt Embedded SDK,然后利用Qt Creator编译程序。由于Qt Creator具有良好的可视化操作界面,同时它包含了一个功能非常强大的C++代码编辑器,所以第二种方法是我们的首选。

1)在Qt中,点击菜单栏File/New File or Project,新建文件类型为Qt C++Project/Qt Gui Application。在接下来的Qt Gui Applic ation对话框中输入工程名称QtImage和保存路径。

所创建的数码相册项目工程如图1所示。

Linux嵌入式系统的电子相册代码,基于嵌入式Linux和Qt编程实现数码相框的设计相关推荐

  1. 嵌入式系统实验 构建嵌入式Linux系统,《嵌入式系统与开发》构建嵌入式Linux系统-实验报告.doc...

    <嵌入式系统与开发>构建嵌入式Linux系统-实验报告 <嵌入式数据库sqlite移植及使用> 实验报告 学生姓名: 陈 彤 学 号: 1座机电话号码 专业班级: 130044 ...

  2. 《AI嵌入式系统技术与实践-基于树莓派RP2040和MicroPython》书籍介绍

    图书封面及出版信息 出版信息:袁志勇编著.<智能嵌入式系统技术与实践-基于树莓派2040和MicroPython>. 北京: 北京航空航天大学出版社, 2023年4月第1版 (全书约50万 ...

  3. 《嵌入式系统设计师》笔记之一——嵌入式系统基础知识

    1.1 嵌入式系统的定义和组成 1.1.1 嵌入式系统的定义 以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能.可靠性.成本.体积.功耗严格要求的专用计算机系统. 1.1.2 嵌入式 ...

  4. 嵌入式系统,嵌入式系统定义和使用,嵌入式系统和桌面通用系统的区别,嵌入式系统结构组成,嵌入式软件组成

    嵌入式系统定义和使用,嵌入式系统和桌面通用系统的区别,嵌入式系统结构组成,嵌入式软件组成 嵌入式系统定义和使用 一.嵌入式系统 1.定义:用于控制.监视或者辅助操作机器和设备的装置,嵌入式系统的前提是 ...

  5. 嵌入式系统设计师考试笔记之嵌入式系统基础知识

    以下是转帖一位网友的嵌考笔记 嵌入式系统设计师考试笔记之嵌入式系统基础知识 欧浩源(ohy3686@qq.com) 20080818 一.引言 自<嵌入式系统设计师考试复习笔记之存储管理篇> ...

  6. [ARM嵌入式系统开发]第一章之嵌入式系统的软硬件

    本章的最后,通过描述ARM为核心的嵌入式系统,来介绍了嵌入式系统的软件和硬件构成和结构.这里根据这部分的介绍以及其他的文章,描述下通用的嵌入式系统的软件和硬件.     首先来说下硬件,书中说,包含有 ...

  7. 计算机类课程嵌入式系统的特点及其应用,嵌入式系统的准确定义、特点及其重要性...

    嵌入式计算机系统的出现,是现代计算机发展史上的里程碑事件.嵌入式系统诞生于微型计算机时代,与通用计算机的发展道路完全不同,形成了独立的单芯片的技术发展道路.由于嵌入式系统的诞生,现代计算机领域中出现了 ...

  8. C语言编程可调电子钟设计,基于ZG211使用C语言编程的电子钟显示设计(最终版)...

    <基于ZG211使用C语言编程的电子钟显示设计.doc>由会员分享,可在线阅读全文,更多相关<基于ZG211使用C语言编程的电子钟显示设计(最终版)>请在www.woc88.c ...

  9. c语言如何在1序号方编程,《基于ZG211使用C语言编程的电子钟显示设计最终版》...

    <基于ZG211使用C语言编程的电子钟显示设计.doc>由会员分享,可免费在线阅读全文,更多与<基于ZG211使用C语言编程的电子钟显示设计(最终版)>相关文档资源请在帮帮文库 ...

  10. 从零开始的嵌入式系统开发学习Day1(初识linux)

    目录 一.什么是嵌入式? 二.linux发展 三.linux系统的层次 应用层 内核层 硬件层 四.linux的目录结构 五.命令行提升符的介绍 六.linux的基本命令 6.1 ls 命令 6.2 ...

最新文章

  1. iphone分辨率_iPhone 的屏幕为什么比安卓更丝滑?
  2. 【Android】线程池
  3. 原始 H.264 码流播放
  4. utm虚拟机安装linux,UTM: 在 iOS 上安装 Windows 或 Linux 等系统及虚机安装过程
  5. jenkins pipeline php,Jenkins pipeline 系列二-为什么选择Pipeline
  6. (set)计算集合的并
  7. python直方图均衡_Python实现图像直方图均衡化算法
  8. SmartUpload上传下载使用
  9. pytorch argmax_PyTorch深度学习模型的服务化部署
  10. 微软官方工具_时隔20年再出发!微软官方推出最强Windows工具集
  11. 【编译原理笔记08】语法制导翻译:语法制导定义,SSD的求值顺序,S属性定义与L属性定义
  12. 杨森翔的书法(对联、斗方、圆光)
  13. Spark技术互动问答分享
  14. jQuery图像查看插件Zoom.js
  15. pythonwhile嵌套if_python中for、while循环、if嵌套的使用
  16. 关于在工作中遇到的问题及解决方案
  17. navicat计划任务
  18. 索骥馆-OFFICE系列之《EXCEL数据分析之道:让你的数据更有说服力》扫描版[PDF]
  19. 东北大学应用数理统计第三章知识点总结——假设检验
  20. 获取PancakeSwap Price

热门文章

  1. FFmpeg安卓流媒体播放器开发实战视频课程 -基于NDK、C++和 FFmpeg Android
  2. 技巧:如何提高git下载速度
  3. Mysql数据库死锁实战-死锁演示-排他锁的相互等待
  4. 显示upnp服务器 sonos,四步解决UPNP功能被阻塞的问题
  5. ECCV 2020 论文大盘点-图像增强与图像恢复篇
  6. 汽车加油问题(python)
  7. 腾讯天龙八部手游服务器账号上线,天龙八部手游服务器的注册已达到上限_服务器注册上限怎么解决_玩游戏网...
  8. ovs 内核态加打印调试
  9. MeanShift算法原理及其python自定义实现
  10. 项目采购管理和干系人管理