基于qt的图像格式转换器设计与实现学士学位论文.docx
- 文档编号:15706008
- 上传时间:2023-07-06
- 格式:DOCX
- 页数:74
- 大小:711.84KB
基于qt的图像格式转换器设计与实现学士学位论文.docx
《基于qt的图像格式转换器设计与实现学士学位论文.docx》由会员分享,可在线阅读,更多相关《基于qt的图像格式转换器设计与实现学士学位论文.docx(74页珍藏版)》请在冰点文库上搜索。
基于qt的图像格式转换器设计与实现学士学位论文
基于QT的图像格式转换器设计与实现
摘要
在linux,windows不同平台,利用QT开发工具,实现了对本地图像进行格式转化功能。
设计的图像转化软件,具备了一些基本的图像操作,包括查看图片、放大图片、缩小图片、前一张、后一张、图像转化和新建截图等功能。
利用QT实现代码复用。
使得该软件操作简便,界面整洁。
在Linux系统嵌入式环境下基于QT的图像转化设计更具有实用价值。
本设计是在Linux和windows下使用QT技术进行GUI设计,利用QTCreator软件编程实现一个图形界面,完成一个简单的图像转化的设计。
该设计基于QT集成开发环境,利用系统的函数接口来编程、具有体积小、支持的格式多、系统占用资源少、支持各种常用格式的转化等功能,还可以实现代码复用,实现跨平台的效果。
此次开发设计在Windows7系统和Ubuntu12.04下,以C++为开发语言,在Qt4.7.4开发平台上。
通过对其开发,深入了解QT开发软件的流程和其强大功能,为后来使用者起借鉴作用。
关键词:
不同平台;图形用户界面;QT;代码复用
DesignandimplementationofimageformatconverterbasedonQT
Abstract
InLinux,windowsplatform,usingQTdevelopmenttools,implementationofthenativeimageformatconversionfunction.Imageconversionsoftwaredesign,hassomeofthebasicoperationoftheimage,includingviewpictures,enlarge,narrow,apicturebefore,aftera,imagetransformationandnewscreenshotsandotherfunctions.ReusecodebyusingQT.Thesoftwareiseasytooperate,cleaninterface.
IntheembeddedLinuxsystemenvironmentdesignofimagetransformationbasedonQTandhasmorepracticalvalue.ThisdesignisaGUIdesignusingQTtechnologyinLinuxandwindows,therealizationofagraphicalinterfaceusingQTCreatorsoftwareprogramming,tocompleteasimpleimagetransformingdesign.ThedesignoftheQTintegrateddevelopmentenvironmentbasedon,programming,hastheadvantagesofsmallvolume,supportplaybackfunctionformatconversion,thesystemtakesfewerresources,supportavarietyofcommonlyusedformatusingthefunctioninterfacesystemandCanalsoachievecodereuse,toachievecrossplatformeffect.
ThedevelopmentofdesignintheWindows7systemandUbuntu12.04,whichisdevelopedbyC++language,intheQt4.7.4developmentplatform.Throughitsdevelopment,in-depthunderstandingofQTsoftwaredevelopmentprocessanditspowerfulfunctionsforlaterreference,user.
Keywords:
differentplatform;graphicuserinterface;QT;codereuse
11绪论
11.1课题背景
今天我们所处的环境信息化发达、计算机网络遍布全球。
离开了嵌入式的发展是不可能谈及网络的,这些年来,嵌入式产品发展出多种多样。
这就不仅要求其茶品有强大的网络支持功能,还要有低成本、美观的图形界面。
而在Linux、Windows等操作系统上具有完备功能的图形设计开发软件成为解决问题的好方案。
目前,嵌入式系统是在一个快速发展的时代,激烈的竞争,这种竞争和发展在未来几年将继续发展和激烈。
嵌入式系统市场和技术的发展很快,国外技术发展的步伐更加成熟,市场基本形成。
国内的发展速度也很快,市场有很大的潜力。
在国外的一些发达国家,高水平的硬件,尤其是在嵌入式CPU的处理能力上,从原来的8位到16位再到32位,发展速度很快。
掌上电脑、智能设备等新产品的涌入市场,使得产业规模进一步扩大和发展。
国内的嵌入式硬件需求基本是靠进口来满足,技术相对较弱。
但是,如今国内外都有自己推出的嵌入式系统,都在为自己在这个产业争取一份额而努力。
而其中Linux以其公开的系统内核源代码而得到广泛的重视和使用,发展前景非常乐观。
在国内,大型的嵌入式系统非常少,今后的开发重点可能转向基于Internet的各种信息和嵌入式操作系统领域,包括Internet、网上交易、Iphone和平板电脑等。
目前在开发GUI时也会有很多种选择,但是有很少软件可以实现一套代码在几乎不用修改代码便可支持多个操作系统编译。
如果不能实现复用代码,要想在另一个系统上实现同样功能,只能舍弃原来的开发代码,进行重新开发。
这样会消耗大量的人力和财力,使得原本很成熟的开发成果因此被遗弃。
QT在开发时解决了这个问题,我们只需要在不同环境下安装好QT,并把开发好的代码编译一次便可以运行,极大的提高了开发效率,在维护时也方便很多。
它还可以发挥每个不同平台的优势,只需引入相应的系统中头文件即可。
嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。
它一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户的应用程序等四个部分组成,用于实现对其他设备的控制、监视或管理等功能。
嵌入式系统一般指非PC系统,它包括硬件和软件两部分。
硬件包括处理器/微处理器、存储器及外设器件和I/O端口、图形控制器等。
软件部分包括操作系统软件(OS)(要求实时和多任务操作)和应用程序编程。
有时设计人员把这两种软件组合在一起。
应用程序控制着系统的运作和行为;而操作系统控制着应用程序编程与硬件的交
互作用。
嵌入式系统的核心是嵌入式微处理器。
嵌入式微处理器一般就具备以下4个特点:
1)对实时多任务有很强的支持能力,能完成多任务并且有较短的中断响应时间,从而使内部的代码和实时内核心的执行时间减少到最低限度。
2)具有功能很强的存储区保护功能。
这是由于嵌入式系统的软件结构已模块化,而为了避免在软件模块之间出现错误的交叉作用,需要设计强大的存储区保护功能,同时也有利于软件诊断。
3)可扩展的处理器结构,以能最迅速地开展出满足应用的最高性能的嵌入式微处理器。
4)嵌入式微处理器必须功耗很低,尤其是用于便携式的无线及移动的计算和通信设备中靠电池供电的嵌入式。
系统更是如此,如需要功耗只有mW甚至μW级。
嵌入式计算机系统同通用型计算机系统相比具有以下特点:
1.嵌入式系统通常是面向特定应用的嵌入式CPU与通用型的最大不同就是嵌入式CPU大多工作在为特定用户群设计的系统中,它通常都具有低功耗、体积小、集成度高等特点,能够把通用CPU中许多由板卡完成的任务集成在芯片内部,从而有利于嵌入式系统设计趋于小型化,移动能力大大增强,跟网络的耦合也越来越紧密。
2.嵌入式系统是将先进的计算机技术、半导体技术和电子技术与各个行业的具体应用相结合后的产物。
这一点就决定了它必然是一个技术密集、资金密集、高度分散、不断创新的知识集成系统。
3.嵌入式系统的硬件和软件都必须高效率地设计,量体裁衣、去除冗余,力争在同样的硅片面积上实现更高的性能,这样才能在具体应用中对处理器的选择更具有竞争力。
4.嵌入式系统和具体应用有机地结合在一起,它的升级换代也是和具体产品同步进行,因此嵌入式系统产品一旦进入市场,具有较长的生命周期。
5.为了提高执行速度和系统可靠性,嵌入式系统中的软件一般都固化在存储器芯片或单片机本身中,而不是存贮于磁盘等载体中。
6.嵌入式系统本身不具备自举开发能力,即使设计完成以后用户通常也是不能对其中的程序功能进行修改的,必须有一套开发工具和环境才能进行开发。
要说嵌入式行业,就要先从嵌入式系统和软件说起。
嵌入式系统和软件是指嵌入在硬件中的非PC操作系统和开发工具软件,分为嵌入式操作系统、嵌入式支撑软件、嵌入式应用软件,被称为“驱动系统的灵魂。
Qt是1991年奇趣科技公司开发的一款跨平台的C++图形用户界面应用程序框架。
它不仅可以开发GUI程序,也可开发非GUI程序,比如控制台工具程序和服务器端程序。
Qt是基于C++语言的面向对象框架,使用特殊的代码生成扩展以及一些宏,易于扩展,允许组件编程。
2008年,奇趣科技被诺基亚公司收购,QT也因此成为诺基亚旗下的编程语言工具。
2012年,Qt被Digia收购。
2014年4月,跨平台集成开发环境QtCreator3.1.0正式发布,实现了对于iOS的完全支持,新增Beautifier、WinRT等插件,废弃了无Python接口的GDB调试支持,集成了基于Clang的C/C++代码模块,并对Android支持做出了调整,至此实现了全面支持Android、iOS、WP。
Qt良好的封装机制使得Qt的模块化程度非常高,代码可重用性较好,对于用户开发来说是非常方便。
Qt还提供了一种称为signals/slots的安全类型来代替callback,这Qtcreator是全新的跨平台集成开发环境,为QT开发人员的需求量身定制,由于捆绑了最新QT库二进制软件包和附加的开发工具,并作为QTSDK的一部分,Qtcreator在单独的安装程序内提供了进行跨平台QT开发所需的全部工具。
Qtcreator主要是为了帮助新QT用户更快速入门并运行项目,还可提高有经验的QT开发人员的工作效率。
使得各个元件之间的协同工作变得十分简单。
因此,学习QT开发软件无论对于开发普通软件人员还是嵌入式开发者都是十分必要的,它还有重要的商业和研究价值,或许不久的将来便可在图形界面开发软件独居榜首。
11.2课题研究的目的及意义
随着科学技术的进步,我们的社会越来越丰富多彩,图像的种类也越来越多。
在信息技术发展的今天,人类对于图像的依赖也越来越高。
米歇尔列举的有“电脑辅助设计、合成全息照相、飞行模拟器、电脑动画、机器人图像识别、射线跟踪、文本图绘、运动控制、虚拟环境防护、磁共振成像、以及多谱感应器等”。
对于图像的定位,在社会发展的过程中,发生了翻天覆地的变化。
以前的图像,可能是物的附属,或者是价值的附属,都无法按照意指的规则,进行排列组合和格式转化。
Qt具有丰富的API包括多达250个以上的C++类还提供基于模板的file、collections、I/Odevice、serialization、directorymanagement、date/time类。
甚至还包括正则表达式的处理功能。
Qt是诺基亚开发的一个跨平台的C++图形用户界面应用程序框架。
它提供给应用程开发者建立艺术级的图形用户界面所需的所有功能。
Qt是完全面向对象的,很容易扩展,并且允许真正地组件编程,自从1996年早些时候,Qt进入商业领域,他已经称为全世界范围内数千种成功的应用程序的基础,Qt也是流行的LINUX桌面环境KED的基础。
基本上,Qt同XWINDOW上的Motif,OPENWIN,GTK等图形界面库和Windows平台上的MFC,OWL,VCL,ATL是同类型的东西,但Qt具有优良的跨平台性、面向对象,丰富的API、大量的开发文档等优点。
QtCreator是跨平台的QtIDE,QtCreator是Qt被Nokia收购后推出的一款新的轻量级集成开发环境(IDE)此IDE能够跨平台运行,支持的系统包括Linux(32位及64位)、MacOSX以及Windows。
根据官方描述,QtCreator的设计目标是使开发人员能够利用Qt这个应用程序框架更加快速及轻易的完成开发任务。
在功能方面,QtCreator包括项目生成向导、高级的C++代码编辑器、浏览文件及类的工具、集成了QtDesigner、QtAssistant、QtLinguist、图形化的GDB调试前端,集成QMAKE构建工具等。
尤其是我们在制作软件和网页时候,需要各种各样的不同格式的图片进行·装饰,不可能使用单一的图片格式满足用户的所有需求。
这时有一款图像转化软件可以满足市场和开发人员的需要。
在嵌入式发展飞速的今天,更需要有一款软件可以随时随地的对图像进行处理·。
特别是在Linux环境下,图形化软件特别少,需要一个可以方便使用和操作的有图形界面的软件。
Qt可以实现在windows和linux一次编译多次运行,是市场发展的好趋势。
所以今天做一个图形转化程序来验证Qt的良好的实现代码机制和强大的跨平台功能。
服务业创造价值,而体验业创造意义。
在服务中创造更好的用户体验,可以提升用户价值。
Qt包括一套集成的开发工具,可加快在X11平台上的开发。
Qt由于是KDE桌面环境的基础,在各个Linux社区人尽皆知。
几乎KDE中的所有功能都是基于Qt开发的,而且Qt是全球社区成员用来开发成千上万的开源KDE应用程序的基础。
本文运用QT技术在Linux下进行GUI设计,以一个图形界面为例,运用QTcreator软件编程,实现一个图像转化软件。
11.3嵌入式的现状和前景
嵌入式的现状和前景在未来嵌入式应用软件的开发不仅需要操作系统的支持开发工具而且还需要的强大的开发工具的支持,伴随计算机网络技术的成熟和发展,以及带宽的提高,ICP和ASP在网上提供的信息内容日趋丰富、应用项目多种多样。
像智能手机、平板电脑及冰箱,智能家居等嵌入式电子设备的功能不再单一,其结构也更为复杂。
为了满足更多应用功能的快速升级,设计师们一方面采用更为先进的嵌入式处理器如32位、64位RISC芯片或者信号DSP处理器增强其处理能力;同时还采用多任务的、实时的编程技术和交叉开发工具技术来控制程序实现的功能复杂性,此外还要简化应用程序设计、保障软件的质量和尽量缩短开发软件的周期。
(1)联网成为嵌入式发展的必然趋势
为了更好的适应嵌入式分布处理的结构和网络应用上的需求,面向新一代的嵌入式系统要求配备标准的一种或多种网络通信接口才能与之相适应。
对于外部联网要求,嵌入设备必需配有通信接口,同时需要TCP/IP协议软件支持;同时也需要提供相应的通信网协议软件和物理层驱动软件。
为了支持应用软件的特定的编程模式,还需要相应的浏览器和网页支持技术的开发与发展。
(2)支持小型电子设备、实现小尺寸、微功耗以及低成本
为满足这种特性,使得嵌入式产品设计在一定程度降低处理器的性能,限制一定的内存容量和复用接口芯片。
这就相应提高了对嵌入式软件设计技术要求。
(3)提供精巧的多媒体人机界面
嵌入式设备以后一定会让亿万用户乐于接受,最重要原因之一是它们与使用者之间很强的亲和力,随和的人机交互界面,人们与信息终端交互要求以GUI屏幕为中心的多媒体界面。
智能终端产品技术已经非常成熟,如iphone、ipad、Andriod产品、MP3、MP4等等。
以Linux为代表的自由软件开始占领比较大的市场,据统计,linux占北美PC服务器25%左右的市场份额,打破了微软Windows一统天下的局面,国内也迅速跟进,开发了红旗Linux等。
嵌入式操作系统及其开发平台的市场被普及计算(PervasiveComputing)概念所驱动,发展更为迅速,著名的产品有美国加州的集成系统公司(IntegratedSystemsInc)推出的psosystem,占领了极大的市场份额。
国内‘九五’期间,由中科院推促并产业化的Hopen嵌入式系统,被列为国家科技攻关项目。
基于Linux技术的嵌入式操作系统也已经推出。
根据美国VDC(VentureDevelopmentCo.)统计数据显示,嵌入式linux的市场规模从2001年的5520万美元,到2006年增长到了3.46亿美元,在未来两年将占嵌入式操作系统市场份额的50%。
现今,与嵌入式应用相结合的嵌入式操作系统有VxWorks、Linux、WinCE、COS-II等,他们各有其特点,VxWorks的特点是可靠性,实时性,可裁剪性,相比较而言,WINCE是多线性、多任务、全优先的操作系统,是专门针对资源有限而设计,COS-II则是一个基于优先级的实时操作系统,每一个任务必须具有不同的优先级,如果优先级相同,任务将无法区分。
而嵌入式Linux更具有优势。
归纳起来,嵌入式Linux至少具有以下优势:
(1)开放的源码,丰富的软件资源Linux是自由的操作系统,它的开放源码使用户获得了最大的自由度。
Linux上的软件资源十分丰富,每一种通用程序在Linux上都可以找到。
(2)功能强大的内核,性能高效、稳定,多任务Linux的内核非常稳定,它的高效和稳定性已经在各个领域,尤其在网络服务器领域,得到了事实的验证。
Linux内核小巧灵活,易于裁减,这使得它很适合嵌入式系统的应用。
(3)支持多种体系结构,如X86、ARM、MIPS、ALPHA、SPARC等目前,Linux已经被移植到数十种硬件平台上,几乎支持所有流行的CPU。
(4)完善的网络通讯、图形、文件管理机制Linux自产生之日起就与网络密不可分,网络是Linux的强项。
另外,Linux还支持多种文件和图形系统。
(5)支持大量的周边硬件设备Linux上的驱动已经非常丰富了,它们支持各种主流硬件设备和最新硬件技术。
(6)大小、功能都可定制Linux秉承Unix的优秀设计思想,非常灵活,各部分的可定制性都很强。
(7)良好的开发环境,不断发展的开发工具集Linux有着非常优秀的完整开发工具链,有十几种集成开发环境,其中很多是免费的,大大降低了开发费用。
鉴于嵌入式技术的广阔发展前景,技术的推广与普及工作受到了越来越广泛的关。
我们要抓住机遇、迎接挑战,在嵌入式发展行业中抢占市场先机,需要所有人共同的努力!
11.4QT的历史和最新发展
Qt提供给应用程序开发者建立艺术级别的图形用户界面所需的所有功能。
Qt很容易扩展,并且允许真正地组件编程。
基本上,Qt同XWindow上的Motif、GTKOpenwin,等图形界面库和Windows平台上的MFC,OWL,VCL,ATL是同类型的东西。
Qt4.6首次包含了对Symbian平台的支持,并在其所支持的平台中新增了Windows7、AppleMacOS10.6(雪豹)和即将上市的Maemo6。
此外还为实时操作系统QNX和VxWorks提供了网络社区支持。
对Maemo5的支持已进入研发阶段,其技术预览版第二版于2009年12月1日发布。
Qt对X11、X86、ARM及Symbian的支持首次为开发人员创造了使用同一代码库同时针对这多个平台进行开发的机会。
能够跨平台分享代码就意味着开发人员所开发的应用程序上市的速度将更快,影响的设备用户群将更广。
QtMobility项目下的全新QtAPI技术预览版也同时发布。
这些跨平台的API为开发人员提供了多种功能,如导航类设备的定位功能,以及信息发送和接收、联系人和网络连接管理等。
性能提升主要包括:
一个经过高度优化、重新编写的QtGraphicsView渲染算法、一个全新的OpenGL绘图引擎、WebKit、使用OpenVG对2D矢量图形的支持,以及对全新DirectFB的支持。
2013年7月3日,Qt5.1正式版发布了,这是Qt5.0发布后经过6个月的开发而测试的新版本。
主要是修复5.0中的bug,但该版本还包含了很多新特性和一些小改进,详细内容请看Qt5.1launchpage。
Qt5.1绑定了QtCreator2.7.2,可通过一个新的在线安装器来安装,可自动的无缝的更新,同时也提供了一个新版本的VisualStudio插件。
最新的QT可以支持MS/Windows-95、98、NT4.0、ME、2000、XP、Vista、Win7、win8、win2008、Unix/X11-Linux、SunSolaris、HP-UX、CompaqTru64UNIX、IBMAIX、SGIIRIX、FreeBSD、BSD/OS和其它很多X11平台。
添加了更多的功能。
市场上的极品飞车和officeWPS,Google地球等一些大家熟悉的软件,Qt发展前景很好,也非常容易入手,做出自己喜欢的软件。
在开发上可以降低成本,有很广的市场发展前景。
(1)跨平台特性,避免重复造车轮
写一次源代码,能在不同的系统平台下编译,这个功能很强大,目前,还没有什么软件与它相比。
有人说flexbuild可以跨平台,那么,二者效率不可同日而语,Qt的效率还是不错的。
使用Qt这么长时间,如果项目中使用的类不是第三方的,所开发的程序能完美在不同系统,不同体系的平台上运行。
如一个监控项目,所开发的程序,除了引用第三方的串口类以外,其它源码不用改动,就可以在不同的平台下编译。
即便是第三方的串口类,只是修改了一个条件编译参数,仅此而已。
(2)QT本身优良的机制,使用面向组件编程。
面向组件的编程,是相对于面向过程和对象编程来说的,面向组件编程更具有优势,什么是面向组件编程呢?
打个比方,如果你要建设一个房子,有很多方式,假如建筑材料是砖,水泥,沙子,大梁,楼板等。
建造房子时,我们在地基上,必须先拌水泥和沙子,然后把砖一块块地垒成墙,再上大梁,然后铺上楼板,这就是一个面向过程的编程。
面积组件的编程就是,建筑材料是做好的一面面墙,屋顶,建成房屋时只需把墙和屋顶组合起来就行了。
面向组件的编程是用别人做好的代码块,拿过来直接用,所以编程优势比较明显。
QT的类库十分丰富,有几千个不同的API,也就是方法,只要你熟悉这些API的参数用法,就可以直接拿过来用,像连接数据库,QT已经写好常见的数据库操作方法,使用时,不需要再编写,只需要拿过来,直接用就好了。
(3)把精力放在核心功能的实现上,而不是源码本身。
QT使用了面向组件的编程机制,所利用Qt编程时,能解放出程序员的编码工作量,所以,程序员把精力放在业务的实现就可以了。
利用前人的源码,直接实现自己要做的业务。
使用QT编程确实大大提高工作效率,并且代码质量也很高,因为调用的方法大都很成熟,这就是编程的微妙之处。
(4)能构造出艺术级的界面,设计界面方便。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 qt 图像格式 转换器 设计 实现 学士学位 论文