一种嵌入式系统中图片资源加载的方法及装置的制作方法

文档序号:6460213阅读:122来源:国知局
专利名称:一种嵌入式系统中图片资源加载的方法及装置的制作方法
技术领域
本发明涉及计算机技术领域,尤其涉及一种嵌入式系统中图片资源加载的 方法和装置。
背景技术
众所周知,嵌入式系统中图片资源的加载是非常重要的一环,目前该系统 主要有两种图片资源加载方式。第一种图片资源加载方式将图片资源存储于内存中。其实现基本机制是将图片资源转换成一个全局结构,其中包含图片的高、 宽、每个像素所占字节数、描述图片每个像素颜色值的点阵数组等。在显示图 片时直接从结构中取出点阵数组就可以输出到屏幕了。本方法的优点是访问速 度快,接口简单。但是,由于图片数据是直接存储于全局变量中的,所以需要 占用一定的内存空间。而图片分辨率越高,所占用的内存空间就越大。由于嵌 入式系统的内存空间是有限的,当系统中同时存在较多分辨率高的图片时,图 片资源所占用的内存空间就会相当庞大,这样就会出现系统内存空间不足的情 况,限制了应用的灵活性。第二种图片资源加载方式将图片资源存储于文件系统中。其实现基本机制是将图片资源存储于文件系统中,并给每个图片配一个资 源ID,当需要使用该图片时,再将其从文件系统中加载到内存中,其优点是 节省内存空间。但是,由于从文件系统中读数据相比从内存中读数据要慢的多, 当仅需要获取图片高、宽等基本图片信息时也需从文件系统中加载图片数据, 因此该方法效率较低。同时还要频繁的进行内存分配和释放,会造成内存碎片。 而为避免内存碎片又需要分配一块固定的空间专门进行图片加载和释放。综上可知,现有嵌入式系统中图片资源加载技术,在实际使用上显然存在 不便与缺陷,所以有必要加以改进。发明内容针对上述的缺陷,本发明的目的在于提供一种嵌入式系统中图片资源加载 的方法和装置,其实现了图片资源的灵活加载,最大地优化了图片资源的访问 速度和内存开销。为了实现上述目的,本发明提供一种嵌入式系统中图片资源加载的方法, 所述方法包括A、 根据图片分辨率和/或系统内存限制,将图片资源分为小图片和大图片;B、 在存储图片资源时,将小图片的图片数据存储于内存中,而将大图片的图片数据存储于文件系统中;c、在加载图片资源时,对于小图片则直接从内存中加载该小图片的图片数据,而对于大图片则从文件系统中加载该大图片的图片数据。根据本发明的方法,所述歩骤B中进一步包括Bl、在存储一图片资源时,先判断该图片资源的类别,若是小图片则执 行步骤B2,若是大图片则执行歩骤B3;B2、将小图片的图片数据转换成第一位图结构和第一点阵数组,并将该 第一点阵数组存储于内存中,且所述第一位图结构中设有一非空的第一点阵指 针,该第一点阵指针指向内存中的第一点阵数组;B3、将大图片的图片数据转换成第二位图结构和第二点阵数组,并将该 第二点阵数组存储于一文件系统中,且所述第二位图结构中设有一置空的第二 点阵指针以及一指向该文件系统中的图片资源映射表的图片指针,并把该图片 指针和资源ID的映射关系加入该图片资源映射表中。根据本发明的方法,所述步骤C进一步包括Cl、在访问一图片资源时则需要加载该图片资源,先判断该图片资源的 位图结构中的点阵指针是否为空,若不为空则代表图片资源为小图片并执行步 骤C2,若为空则代表图片资源为大图片并执行步骤C3;C2、根据该小图片的第一位图结构中第一点阵指针访问内存,直接从内 存中加载该第一点阵指针所指向的第一点阵数组;C3、根据大图片的第二位图结构中的图片指针访问图片资源映射表以找 到对应的资源ID,再根据该资源ID从文件系统中加载该第二点阵数组。根据本发明的方法,所述步骤C之后还包括D、当对所述大图片的访问结束时,将所述内存中从该文件系统加载的大 图片的图片数据予以释放。根据本发明的方法,所述步骤C还包括访问基本图片信息的步骤,在访 问一图片资源时,如果仅需要该图片资源的基本图片信息,则直接从所述图片 资源的位图结构中取得基本图片信息。本发明还提供一种嵌入式系统中图片资源加载的装置,该装置包括图片资源分类模块,用于根据图片分辨率和/或系统内存限制,将图片资 源分为小图片和大图片;图片资源存储模块,用于在存储图片资源时,将小图片的图片数据存储于 内存中,而将大图片的图片数据存储于文件系统中;图片资源加载模块,用于在加载图片资源时,对于小图片则直接从内存中 加载该小图片的图片数据,而对于大图片则从文件系统中加载该大图片的图片数据。根据本发明的装置,所述图片资源存储模块进一步用于在存储一 图片资源时,先判断该图片资源的类别若是小图片,所述图片资源存储模块则用于将该小图片的图片数据转换成 第一位图结构和第一点阵数组,并将该第一点阵数组存储于内存中,且所述第 一位图结构中设有一非空的第一点阵指针,该第一点阵指针指向内存中的第一 点阵数组;若是大图片,所述图片资源存储模块则用于将该大图片的图片数据转换成 第二位图结构和第二点阵数组,并将该第二点阵数组存储于一文件系统中,且 所述第二位图结构中设有一置空的第二点阵指针以及一指向该文件系统中的 图片资源映射表的图片指针,并把该图片指针和资源ID的映射关系加入该图片资源映射表中。根据本发明的装置,所述图片资源加载模块进一步用于在访问一图片资源时加载该图片资源,并先判断该图片资源的位图结构中的点阵指针是否为空 若该点阵指针非空,所述图片资源加载模块则用于根据该小图片的第一位 图结构中第一点阵指针访问内存,直接该从内存中加载该第一点阵指针所指向 的第一点阵数组;若该点阵指针为空,所述图片资源加载模块则用于根据该大图片的第二位图结构中的图片指针访问该图片资源映射表以找到对应的资源ID,再根据该 资源ID从该文件系统中加载该第二点阵数组。根据本发明的装置,所述装置还包括图片资源释放模块,用于在对所述大 图片的访问结束时,将所述内存中从该文件系统加载的大图片的图片数据予以 释放。根据本发明的装置,所述图片资源加载模块还用于在访问一图片资源时, 若仅需要该图片资源的基本图片信息,则直接从所述图片资源的位图结构中取 得基本图片信息。本发明通过将图片资源分为大图片和小图片两类,其在存储图片资源时, 将小图片的图片数据存储于内存中,而将大图片的图片数据存储于文件系统 中;在加载图片资源时,对于小图片则直接从内存中加载其图片数据,而对于 大图片则从文件系统中加载其图片数据。借此,本发明实现了图片资源的灵活 加载,相比于将所有图片资源全部存储于内存的方式,可以有效地节省内存空 间;相比于将所有图片资源全部存储于文件系统的方式,则可以提高访问速度, 从而最大地优化了图片资源的访问速度和内存开销。


图1是本发明嵌入式系统中图片资源加载的装置结构图;图2是本发明的图片指针和图片资源映射表的映射关系实例图;图3是本发明嵌入式系统中图片资源加载的方法流程图;图4是本发明优选的嵌入式系统中图片资源加载的方法流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实 施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅 仅用以解释本发明,并不用于限定本发明。本发明的基本思想是根据图片分辨率的多少和/或系统内存空间的限制, 分为两种情况考虑。对于小图片,由于其分辨率低,转换成点阵数组后占用的 内存空间小,可以将其直接以点阵数组的方式存储于内存中;而对于大图片, 由于其分辨率高,转换成点阵数组后所占用的内存空间大,因此可以将其存储于文件系统中,在需要显示时再将其读出来。另外,为了实现接口的统一处理, 访问所有的图片资源都优选通过位图结构来实现。图1示出了本发明嵌入式系统中图片资源加载的装置结构,该图片资源加 载的装置IO至少包括图片资源分类模块11、图片资源存储模块12、图片资源 加载模块13,其中图片资源分类模块ll,用于根据图片分辨率和/或系统内存限制,将图片 资源分为小图片和大图片。所谓小图片是指图片分辨率相对小和/或系统内存 限制相对少的图片,例如一些小图标等;所谓大图片是指图片分辨率相对大和 /或系统内存限制相对多的图片,例如一些全屏图片等。图片资源存储模块12,用于在存储图片资源时,将小图片的图片数据存储于内存中,而将大图片的图片数据存储于文件系统中。其中,将图片资源存 储于内存中的第一种加载方式,其实现原理是将图片资源转换成位图结构和点 阵数组直接存储于内存中,所述点阵数组一般用于描述图片每个像素颜色值。 在显示图片时直接从内存中取出点阵数组就可以输出到屏幕了。第一种加载方式的优点是访问速度快,接口简单;其缺点是需要占用一定的内存空间。将图片资源存储于文件系统的第二种加载方式,其实现原理是将图片资源存储于文件系统中,并给每个图片配一个资源ID (标识),当需要使用该图片时,再 将其从文件系统中加载到内存中。第二种加载方式的优点是节省内存空间;其 缺点是处理效率比较低。优选的是,所述图片资源存储模块12进一步用于在存储一图片资源时, 先判断该图片资源的类别,即该图片资源是小图片还是大图片若是小图片,所述图片资源存储模块12则用于将该小图片的图片数据转换成第一位图结构和第一点阵数组,并将该第一点阵数组存储于内存中,且所 述第一位图结构中设有一非空的第一点阵指针,该第一点阵指针指向内存中的 第一点阵数组。若是大图片,所述图片资源存储模块12则用于将该大图片的图片数据转换成第二位图结构和第二点阵数组,并将该第二点阵数组存储于一文件系统 中,例如计算机存储器,且所述第二位图结构中设有一置空的第二点阵指针以 及一指向该文件系统中的图片资源映射表的图片指针,并把该图片指针和资源ID的映射关系加入该图片资源映射表中。在访问到图片资源映射表中图片指针时,再从文件系统中读取点阵数组。图片资源加载模块13,用于在加载图片资源时,对于小图片则直接从内 存中加载该小图片的图片数据,而对于大图片则从文件系统中加载该大图片的 图片数据。所述图片资源加载模块B还用于在访问一图片资源时,若仅需要 该图片资源的基本图片信息,则直接从所述图片资源的位图结构中取得基本图 片信息,所述基本图片信息包含图片的高、宽、透明色等。优选的是,所述图片资源加载模块13进一歩用于在访问一图片资源时加 载该图片资源,并先判断该图片资源的位图结构中的点阵指针是否为空若该点阵指针非空,所述图片资源加载模块则用于根据该小图片的第一位 图结构中第一点阵指针访问内存,直接该从内存中加载该第一点阵指针所指向 的第一点阵数组。若该点阵指针为空,所述图片资源加载模块则用于根据该大图片的第二位 图结构中的图片指针访问该图片资源映射表以找到对应的资源ID,再根据该 资源ID从该文件系统中加载第二点阵数组。图2示出了本发明一实施例中图片指针和图片资源映射表的映射关系,该 图片指针(ptr) 1 N和其对应的资源ID1 N存储于图片资源映射表21中, 图片指针1 N和资源ID1 N之间存在一一对应的映射关系。所述图片指针 访问该图片资源映射表21以查询对应的资源ID。若发现该图片指针不在图片 资源映射表21中,则返回到位图结构22另作处理,该位图结构22为上述的 第二位图结构;而若该图片指针在图片资源映射表21中,则根据该资源ID从 本实施例中作为文件系统的FLASH (闪存)23中加载图片数据,也就是该大 图片的第二点阵数组。所述装置IO还可包括图片资源释放模块14,用于在对所述大图片的访问 结束时,将所述内存中从该文件系统加载的大图片的图片数据予以统统释放, 以提高内存的空间及其使用率。图3示出了本发明嵌入式系统中图片资源加载的方法流程,其通过图1 所示的装置10来实现,具体包括步骤有步骤S301,根据图片分辨率和/或系统内存限制,将图片资源分为小图片 和大图片。本步骤通过装置10的图片资源分类模块11来实现。步骤S302,在存储图片资源时,将小图片的图片数据存储于内存中,而将大图片的图片数据存储于文件系统中。本步骤通过装置10的图片资源存储模块12来实现。步骤S303,在加载图片资源时,对于小图片则直接从内存中加载该小图 片的图片数据,而对于大图片则从文件系统中加载该大图片的图片数据。本步 骤通过装置10的图片资源加载模块13来实现。本步骤S303还包括访问基本 图片信息的步骤,在访问一图片资源时,如果仅需要该图片资源的基本图片信 息,则可以直接从所述图片资源的位图结构中取得基本图片信息。图4示出了本发明优选的嵌入式系统中图片资源加载的方法流程,其也通 过图1所示的装置10来实现,具体包括步骤有步骤S401,图片资源分类模块ll根据图片分辨率和/或系统内存限制,将 图片资源分为小图片和大图片。步骤S402,图片资源存储模块12在存储一图片资源时,先判断该图片资 源的类别,若是小图片则执行步骤S403,若是大图片则执行步骤S404。步骤S403,图片资源存储模块12将小图片的图片数据转换成第一位图结 构和第一点阵数组,并将该第一点阵数组存储于内存中,且所述第一位图结构 中设有一非空的第一点阵指针,该第一点阵指针指向内存中的第一点阵数组。步骤S404,图片资源存储模块12将大图片的图片数据转换成第二位图结 构和第二点阵数组,并将该第二点阵数组存储于一文件系统中,且所述第二位 图结构中设有一置空的第二点阵指针以及一指向该文件系统中的图片资源映 射表的图片指针,并把该图片指针和资源ID的映射关系加入该图片资源映射 表中。步骤S405,在访问一图片资源时则需要加载该图片资源,图片资源加载 模块13先判断该图片资源的位图结构中的点阵指针是否为空,若点阵指针不 为空,则代表图片资源为小图片且图片数据已经全部加载到内存中,可以直接 在内存中访问相关数据,并执行步骤S406;若所述点阵指针为空,则代表图 片资源为大图片且说明该图片数据的存储于文件系统中,并执行歩骤S407。步骤S406,图片资源加载模块13根据该小图片的第一位图结构中第一点 阵指针访问内存,直接从内存中加载该第一点阵指针所指向的第一点阵数组。步骤S407,图片资源加载模块13根据大图片的第二位图结构中的图片指 针访问图片资源映射表以找到对应的资源ID,再根据该资源ID从文件系统中加载该第二点阵数组。也就是说,首先在图片资源映射表中以图片指针为关键 字进行匹配,找出相应的资源ID,再从文件系统中加载所述资源ID对应的图 片数据。步骤S408,当对所述大图片的访问结束时,图片资源释放模块14将所述 内存中从该文件系统加载的大图片的图片数据予以释放,以提高内存空间。综上所述,本发明通过将图片资源分为大图片和小图片两类,其在存储图 片资源时,将小图片的图片数据存储于内存中,而将大图片的图片数据存储于 文件系统中;在加载图片资源时,对于小图片则直接从内存中加载其图片数据, 而对于大图片则从文件系统中加载其图片数据。借此,本发明实现了图片资源 的灵活加载,相比于将所有图片资源全部存储于内存的方式,可以有效地节省 内存空间;相比于将所有图片资源全部存储于文件系统的方式,则可以提高访 问速度,从而最大地优化了图片资源的访问速度和内存开销。当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情 况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但 这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
权利要求
1、一种嵌入式系统中图片资源加载的方法,其特征在于,所述方法包括A、根据图片分辨率和/或系统内存限制,将图片资源分为小图片和大图片;B、在存储图片资源时,将小图片的图片数据存储于内存中,而将大图片的图片数据存储于文件系统中;C、在加载图片资源时,对于小图片则直接从内存中加载该小图片的图片数据,而对于大图片则从文件系统中加载该大图片的图片数据。
2、 根据权利要求1所述的方法,其特征在于,所述歩骤B中进一步包括:Bl、在存储一图片资源时,先判断该图片资源的类别,若是小图片则执 行步骤B2,若是大图片则执行步骤B3;B2、将小图片的图片数据转换成第一位图结构和第一点阵数组,并将该 第一点阵数组存储于内存中,且所述第一位图结构中设有一非空的第一点阵指针,该第一点阵指针指向内存中的第一点阵数组;B3、将大图片的图片数据转换成第二位图结构和第二点阵数组,并将该 第二点阵数组存储于一文件系统中,且所述第二位图结构中设有一置空的第二 点阵指针以及一指向该文件系统中的图片资源映射表的图片指针,并把该图片 指针和资源ID的映射关系加入该图片资源映射表中。
3、 根据权利要求2所述的方法,其特征在于,所述歩骤C进一步包括 Cl、在访问一图片资源时则需要加载该图片资源,先判断该图片资源的位图结构中的点阵指针是否为空,若不为空则代表图片资源为小图片并执行步 骤C2,若为空则代表图片资源为大图片并执行步骤C3;C2、根据该小图片的第一位图结构中第一点阵指针访问内存,直接从内 存中加载该第一点阵指针所指向的第一点阵数组;C3、根据大图片的第二位图结构中的图片指针访问图片资源映射表以找 到对应的资源ID,再根据该资源ID从文件系统中加载该第二点阵数组。
4、 根据权利要求3所述的方法,其特征在于,所述步骤C之后还包括D、 当对所述大图片的访问结束时,将所述内存中从该文件系统加载的大 图片的图片数据予以释放。
5、 根据权利要求3所述的方法,其特征在于,所述步骤C还包括访问基本图片信息的步骤,在访问一图片资源时,如果仅需要该图片资源的基本图片 信息,则直接从所述图片资源的位图结构中取得基本图片信息。
6、 一种嵌入式系统中图片资源加载的装置,其特征在于,该装置包括 图片资源分类模块,用于根据图片分辨率和/或系统内存限制,将图片资源分为小图片和大图片;图片资源存储模块,用于在存储图片资源时,将小图片的图片数据存储于 内存中,而将大图片的图片数据存储于文件系统中;图片资源加载模块,用于在加载图片资源时,对于小图片则直接从内存中 加载该小图片的图片数据,而对于大图片则从文件系统中加载该大图片的图片数据。
7、 根据权利要求6所述的装置,其特征在于,所述图片资源存储模块进 一步用于在存储一图片资源时,先判断该图片资源的类别若是小图片,所述图片资源存储模块则用于将该小图片的图片数据转换成 第一位图结构和第一点阵数组,并将该第一点阵数组存储于内存中,且所述第 一位图结构中设有一非空的第一点阵指针,该第一点阵指针指向内存中的第一点阵数组;若是大图片,所述图片资源存储模块则用于将该大图片的图片数据转换成 第二位图结构和第二点阵数组,并将该第二点阵数组存储于一文件系统中,且 所述第二位图结构中设有一置空的第二点阵指针以及一指向该文件系统中的图片资源映射表的图片指针,并把该图片指针和资源ID的映射关系加入该图 片资源映射表中。
8、 根据权利要求7所述的装置,其特征在于,所述图片资源加载模块进 一步用于在访问一图片资源时加载该图片资源,并先判断该图片资源的位图结 构中的点阵指针是否为空若该点阵指针非空,所述图片资源加载模块则用于根据该小图片的第一位 图结构中第一点阵指针访问内存,直接该从内存中加载该第一点阵指针所指向的第一点阵数组;若该点阵指针为空,所述图片资源加载模块则用于根据该大图片的第二位 图结构中的图片指针访问该图片资源映射表以找到对应的资源ID,再根据该 资源ID从该文件系统中加载该第二点阵数组。
9、 根据权利要求8所述的装置,其特征在于,所述装置还包括图片资源 释放模块,用于在对所述大图片的访问结束时,将所述内存中从该文件系统加 载的大图片的图片数据予以释放。
10、 根据权利要求8所述的装置,其特征在于,所述图片资源加载模块还用于在访问一图片资源时,若仅需要该图片资源的基本图片信息,则直接从所 述图片资源的位图结构中取得基本图片信息。
全文摘要
本发明公开了一种嵌入式系统中图片资源加载的方法,包括步骤有根据图片分辨率和/或系统内存限制,将图片资源分为小图片和大图片;在存储图片资源时,将小图片的图片数据存储于内存中,而将大图片的图片数据存储于文件系统中;在加载图片资源时,对于小图片则直接从内存中加载该小图片的图片数据,而对于大图片则从文件系统中加载该大图片的图片数据。相应地,本发明还提供一种嵌入式系统中图片资源加载的装置。借此,本发明实现了图片资源的灵活加载,最大地优化了图片资源的访问速度和内存开销。
文档编号G06F17/30GK101226549SQ20081005690
公开日2008年7月23日 申请日期2008年1月25日 优先权日2008年1月25日
发明者飞 殷, 童晓演, 薛晨曦 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1