admin管理员组

文章数量:1540638

2024年3月15日发(作者:)

维普资讯

2007年第7期 计算机系统应用 

基于Wi nd ows CE图片查看器的设计与实现 

The Design and Realization of Picture Viewer of Windows CE——based 

周先发 雷跃明 (重庆大学软件学院重庆400030) 

摘要:数字图片浏览是人们的视觉娱乐鉴赏需求。本文在Windows CE嵌入式操作系统中,结合各种标准图片格 

式的特点,设计了一个基于嵌入式设备上的图片查看器,并将其成功的应用到汽车车载综合电脑系统中。 

关键词:Windows CE Plafform Builder图片格式图像压缩COM编解码器 

1 引言 

的非PC领域而全新设计的战略性操作系统产品 。 

随着汽车工业与电子信息产业的加速融合,汽车 

开始向信息化、电子化、多媒体化和智能化方向发展。 

嵌入式应用软件 

当前,许多高、中档轿车中的电子设备配置都在向豪华 

型、个性化方向发展。其中作为视听享受的高品质音 

嵌入式操作系统 

 I

响和液晶显示器己经成为许多车型的标准配置。人们 

嵌入式硬件平台 

对轿车的娱乐性要求也在不断提高,车载视频光盘、车 

(\, 嵌入\  一藏箍理器 )、,(  嵌入箴 圈设备 、 ) 

; 

载数字化视频光盘、车载电视、全球卫星导航系统等产 

品得到越来越多用户的青睐。而车载多媒体视听系统 

中图片的存储和播放是其主要功能指标之一。如今很 

图1 嵌入式系统体系结构图 

多嵌入式操作系统被应用在各种小巧精致的移动设备 

上,但是它们对图片的预览支持性不好,没有象桌面操 

它有其自身的特点:(1)精简的模块化操作系统;(2) 

作系统Windows XP下的Windows图片和传真查看器 

多硬件平台支持;(3)支持有线和无线的网络连接; 

这样优秀的软件,本文将运用Windows的Imaging接 

(4)稳健的实时性支持;(5)丰富的多媒体和多语言支 

持;(6)强大的开发工具。 

口开发一个基于嵌入式系统的图片查看器。 

2.3嵌入式操作系统的裁剪及Platform Builder 

由于嵌入式操作系统是可以根据具体应用的需求 

2相关技术及准备 

而可裁剪的,以求达到实时性、高效性、低成本。Plat- 

2.1嵌入式系统 

form Builder是Microsoft推出的针对Windows CE开发 

嵌入式系统(Embedded System)是以应用为中 

的集成开发环境。通过Platform Builder,开发人员可 

心,以计算机技术为基础,并且软硬件可裁剪,使用于 

以对Windows CE操作系统进行定制、构建、下载、调试 

对功能、可靠性、成本、体积及功耗等有严格要求的专 

及发布,并且可以开发简单的基于Windows CE的应用 

用计算机系统 。如按照历史性、本质性以及普遍性 

程序。 

要求,则应定义为:嵌入到对象体系中的专用计算机系 

由于本例将调用Imaging API和Windows CE自 

统。图1为嵌入式系统体系结构图。 

带的编解码器来设计和实现此图片查看器,因此在定 

2.2 Windows CE 

制Windows CE时,需要加入Still Image Codec Support 

Windows CE是一个具有抢先式多任务功能,并具 

(Encode and Decode)、Still Image Decoders、Still Image 

有强大通信能力的嵌入式操作系统;是Microsoft专门 

Encoders三大模块,用来支持Imaging接121的访问。 

为信息设备、移动应用、消费类电子产品、嵌入式应用 

而采用这种设计思路主要基于以下的考虑因素:(1) 

Research and Development研究开发 1 5 

维普资讯

计算机系统应用 2007年第7期 

使用标准的组件可以使程序降低对内存的消耗。因为 

Microsoft的COM组件已经对内存管理实现了优化,从 

JPEG采用对称的压缩算法,即在同一系统环境下压缩 

和解压缩所用的时间相同。 

GIF文件(图形交换格式):此文件是CompuServe 

公司在1987年开发的图像文件格式。GIF文件的数据 

而可以减少开发人员在内存管理方面投下的精力。 

(2)使用Windows CE自带的编解码器可以不把解码 

代码加入到产品中,避免了版权问题。(3)代码以及 

是经过压缩的,它采用了可变长等压缩算法。GIF格式 

的图像深度从1—8bit,即GIF最多支持256种色彩的 解码的效率比较高,满足嵌入式设备内存小、实时性高 

的要求。 

2.4组件对像模型(COM)与接口 

COM组件是一个说明可动态互变组件的规范。 

它提供了为保证能够互操作,客户和组件应遵循的一 

些标准。它是以Win32动态连接库(DLLs)或可执行程 

序(EXEs)的形式发布的可执行代码组成的 。遵循 

COM规范编写的组件将能够满足对组件架构的所有 

需求。它是一种给其它应用程序提供面向对象的API 

或服务的极好方法。 

IUnKnown是所有COM接口的根源,是唯一一个 

不从其它COM接口派生的COM接口。所有其它合法 

的COM接口都必须直接从IUnKnown派生,或者从其 

它合法c0M接口派生。IUnKnown提供了三个方法: 

Querylnterface用于运行时类型发现,也等价于C++ 

的dynamic_cast操作符;AddRef用于通知对象一个接 

口指针已经被复制了;Release用于通知对象一个接口 

指针已经被销毁了,对象为该客户保留的所有资源都 

可以被释放了。 

3计算机图片与图像 

3.1常用图片格式 

现在仍使用广泛的计算机图片格式有BMP、JPEG、 

GIF、PNG、TIFF、PCX等等。由于Windows CE自带有前 

面四种解码器,所以本文将对四种文件格式作简要介 

绍。 

BMP文件:这是一种与硬件设备无关的图像文件 

格式,使用非常广泛。它采用位映射存储格式,除了图 

像深度可选以外,不采用其它任何压缩,因此,BMP文 

件所占用的空间很大。BMP文件的图像深度可选 

1bit、4bit、8bit、24bit及32bff。BMP文件存储数据时,图 

像的扫描方式是按从左到右、从下到上的顺序。 

JPEG文件(联合摄影专家组):是由CCI1T和ISO 

联合组成的一个图像专家组。该专家组制定了第一个 

压缩静态数字图像的国际标准,简称为JPEG算法。 

图像。GIF格式的另一个特点是其在一个GIF文件中 

可以存多幅彩色图像,如果把存于一个文件中的多幅 

图像数据逐幅读出并显示到屏幕上,就可以构成一种 

最简单的动画。 

PNG文件(可移植网络图形):PNG图片以任何颜 

色深度存储单个光栅图像。它是与平台无关的格式, 

并且支持高级别无损耗压缩,支持alpha通道透明度, 

支持伽玛校正,支持交错。PNG受最新的Web浏览器 

支持。 

3.2图像压缩系统 

图像压缩主要是为了除去图片中的编码冗余、像 

素间冗余、心理视觉冗余三个冗余中的一个或多个来 

达到压缩目的。图像压缩系统是由两个截然不同的结 

构块组成:一个编码器和 个解码器 。图像f(X,y) 

被送入编码器,该编码器根据输入数据建立一组符号, 

并运用它们来描绘图像。为了观察和使用压缩的图 

像,必须把该图像送入一个解码器中,以便生成一个重 

构的输出图像r(X,Y)。一般而言,r(X,y)可能是也可 

能不是f(X,Y)的精确表示。因此压缩算法基本可分为 

无失真压缩算法和有失真压缩算法两类。图2展示了 

个通用的图像压缩系统方框图。 

F(x,y) 

F (x,y) 

图2 通用的图像压缩系统方框图 

4 系统设计 

结合上述相关知识,本文采用迭代的软件开发方 

法,在Windows CE系统下用Embedded Visual C++ 

维普资讯

2007年第7期 计算机系统应用 

6.0开发了EPicView软件。本软件的主要操作(功能) 

有: 

件工程的开发思想,我采用在外层封装一个交互操作 

接口层,对用户提供统一、熟悉的操作界面,以便于用 

户习惯和传统的PC系统相同的操作风格;我采用专门 

的管理用户操作行为的类是为了方便用户对操作功能 

的扩展和深化,达到可移植性和实用性。本文在类的 

组织关系上让CEPicViewer保留一个CEImageCodec类 

(1)用CEFileManager模块向用户枚举外部存储 

介质上的图片文件,并以缩略图或列表模式向用户提 

供预览,方便用户选择感兴趣的图片进行详细欣赏、操 

作。在枚举图片文件的过程中,考虑到嵌入式设备内 

存小、处理速度较慢的特点,我采用以文件系统的层次 

的指针,以便于在需要调用的时候创建编解码器,而不 

关系方式依次深层进行查找筛选,在有限的显示面积 

上用上下翻页来提供预览;并在枚举文件的时候使用 

多线程方式来处理,即在主窗口线程中创建一个新线 

程来查找文件,这样方便用户在图片文件太多的情况 

下,可以随意操作某~张已预览的图片进行放大欣赏, 

缓解处理速度的给用户带来的压力。 

(2)用CEPicViewer向用户提供对某张图片放大 

到实际尺寸的查看模式,并支持简单操作功能:选择上 

张图片、选择下一张图片、幻灯片浏览模式、逆时针 

旋转、顺时针旋转、删除、切换到预览模式、退出程序。 

4.1建立模型 

图片要能精确的显示在显示设备环境中,对各种 

压缩的图片无疑需要解码重构成没有压缩的位图格式 

(BMP),而执行这个具体操作的是我运用Windows CE 

下的Imaging API接口封装的CEImageCodec类。它接 

受文件路径和解码器类型而执行具体的编码、解码操 

作,并提供相关的接口供外围类调用。外围的CEPic. 

Viewer和CEFilemanager是用MFC编写的对图片对像 

的操作管理类。最上层是对所有交互行为的封装管理 

类。系统模型见图3。 

交互操作接口层 

0 

CEPicViewer CEF eManager 

EEImageCodec 

t 

ImagingAPl 

图3 EPicView的系统模型 

4.2实现模型 

为了实现程序的低耦合和模块独立性,以现代软 

用通过CEFileManager类去访问编解码器的接口。用 

CEFileManager去组合CEPicViewer类,是为了方便用 

户在操作某张图片时,可以返回到缩略图模式去继续 

寻找自己喜爱的图片。底层的编解码器用Imaging 

API提供的COM接口limagingFadory创建limageDe— 

coder解码器进行解码,再查询获取Ilmage接口,调用 

limage::Draw()方法为用户呈现解码后的图片,调用 

IbasicBitmapOps::Rotate()进行旋转操作,每次旋转接 

受9O度为单位的顺时针、逆时针旋转操作。 

4.3关键技术及类图结构 

本程序的关键点在于充分利用Windows提供API 

接口进行程序设计,利用COM规范达到高效性和可移 

植性;用Windows CE的BMP Decoder、JPG Decoder、 

GIF Decoder、PNG Decoder、ICO Decoder五个图像解码 

器和BMP Encoder、JPG Encoder、GIF Encoder、PNG En— 

coder四个编码器不但可以对图片文件进行读写解码 

并显示,而且可以对不同图片文件进行格式转换,实际 

就是一个编码过程。EPicview软件的关键类CEImage— 

Codec结构如图4,各类问的关系如图5,用例图如图 

6。 

CEIm ̄eCodec 

szType[24]:TCHAR 

m plmage:Ilmage* 

LpImagingFactory:IlmagingFactory* 

 ̄Oecode(:consl TCHAR 1 

nc0def:COr}¥fTcHAR.':constTCHAR ) 

 ̄Display(:CDC.I:CPdnt,:DISPLAY MODE,:Byte) 

 ̄Rotate(angle:Byte) 

 ̄tToRect(:float.:flaot1:cRecI 

 ̄GeC

rea

tCo

teSt

de

CL

amf:

SID(:

consf

Ilma

 TCHAR.

gingFac

I:I

tory

St

*.

.….

am“)

):B

:HRESUL

oolean 

T 

图4 CEImageCodec类图 

4运行实例 

维普资讯

计算机系统应用 

,i一一

, 

、 

± 一一 ——— ———— —— 

 i呈E ! 坌 坌g旦L L E!mageCod金 !— 

r—————————一~————一 

图5 EPicView的类关系图 

/一、

颁览罔” 

~一 

——~

、 

打阡文件灾 、、

一 

~一,

, 

/ 

一 

选扦 』 

r— 一 

、 

一一 ~ 

、 

__一一 一 0..一一 

川J户\、、 .、 旋转 

、 

幺, J“{览 

一 ~

、 ~ 

, 

~ 一 一 

切换缩略 览 删除 ” 

图6 EPicView的用例图 

下图是程序运行时的显示界面。由于考虑到嵌入 

式设备的显示面积较小,为了充分显示大图片的实际 

尺寸,界面的所有操作按钮都采用隐藏技术,用户需要 

操作某幅图片时,单击屏幕任何位置即可显示按钮,按 

钮显现后如果三秒内没有点击任何按钮,按钮会自动 

隐藏。下图是按钮显示时的界面。 

图7 EPicView运行界面 

2007年第7期 

左面从上至下第三个按钮是切换到幻灯片浏览 

模式,第四个按钮是删除某幅图片;右面第三个按钮是 

返回到缩略图预览模式,第四个按钮是退出程序。 

5 结论 

对图片压缩的理论和应用研究仍在不断地深入和 

发展,利用各种方法进行图片压缩及图像处理正在不 

断地涌现出来,本论文通过对彩色图片的编码、解码、 

显示进行探讨及在车载多媒体视听系统中的应用情况 

进行了总结。但是在图片的显示技术上仍然有很大的 

研究空间,针对嵌入式系统的特点,可以选择对大容量 

图片进行分块读取和重新组合显示的方法,这样可以 

减少用户的等待时间。因为本文主要讨论运用Imag— 

ingAPI进行解码、显示图片,所以对这个方面的研究将 

作为以后的任务。 

参考文献 

1陈向群、王雷、马洪兵、向勇等编著,Windows CE. 

NET系统分析及实验教程[M],机械工业出版社, 

2003年1月. 

2何宗键编著,Windows CE嵌入式系统[M],北京航 

空航天大学出版社,2006年9月. 

3[关]DON BOX著潘爱民译。COM本质论[M],北 

京:中国电力出版社,2001年. 

4[关]Rafael C、Gonzalez著,阮秋琦译。数字图像 

处理[M],电子工业出版社,2006年9月. 

5郭之辉,基于车载多媒体视音系统中图片压缩解压 

缩算法的研究[D],合肥工业大学,2006年5月. 

6朱世交、土仁武,WinCE系统中多种图像的显示及其 

问题的解决[J],计算机时代,2004年第2期. 

7李逸波等编著,多媒体数据库技术[M],机械工业 

出版社,2004年7月. 

本文标签: 图片进行系统文件