一种图片浏览的方法及装置的制作方法

文档序号:6355162阅读:111来源:国知局
专利名称:一种图片浏览的方法及装置的制作方法
技术领域
本发明属 于计算机软件领域,尤其涉及一种图片浏览的方法及装置。
背景技术
在互联网渐渐融入日常生活后,在网上浏览或下载各种图片已成为很多人日常生活的一部分,数码相机的流行,又使得对高质量图片的浏览也成为很多人生活中不可或缺的一部分。且相对于以往的打印或冲洗照片而言,通过各种图片查看软件给人们提供了更多的方便和实惠。然而,在人们通过图片查看软件浏览图片时,由于图片查看软件只针对正在浏览的图片进行直接解码,因此,当用户查看的图片像素高时,用户需要等待很长时间;当用户快速地翻页浏览图片时,容易出现很长时间的界面空白忙碌无响应状态。因此,现有的图片查看软件,主要存在以下缺陷I、等待时间长、经常出现忙碌状态;2、如果用户当前查看的图片像素高时,解码时间较长,用户需要等待很长时间;3、当用户快速地翻页浏览图片时,导致占用时间长,UI响应缓慢,用户体验差。

发明内容
本发明实施例的目的在于提供一种图片浏览的方法及装置,g在解决用户在浏览图片时,响应缓慢、用户体验差的问题。本发明实施例是这样实现的,一种图片浏览的方法,所述方法包括如下步骤接收用户输入的图片浏览指令;读取并解析所述图片浏览指令指定的图片,依次加载所述图片浏览指令指定的图片对应生成的小图层及中图层/原图层;扫描所述图片浏览指令指定的图片所在的文件夹,获取所述文件夹下所有图片的文件信息;对所述图片浏览指令指定的图片周边的多张图片进行读取和解析,将所述多张图片分别对应生成小图层与中图层或原图层的组合/小图层,然后将所述生成的图层存储于缓存中;接收到用户发出的翻页浏览图片的指令时,按照尺寸从小到大的顺序依次加载图层,所述加载的图层包括与翻页浏览指令指定的图片对应的小图层、中图层及原图层的其中ー种或多种。本发明实施例的另一目的在于提供一种图片浏览的装置,所述装置包括图片浏览指令接收单元,用于接收用户输入的图片浏览指令;图片浏览单元,用于读取并解析所述图片浏览指令指定的图片,依次加载所述图片浏览指令指定的图片对应生成的小图层及中图层/原图层;文件夹扫描単元,用于扫描所述图片浏览指令指定的图片所在的文件夹,获取所述文件夹下所有图片的文件信息;图片预加载单元,用于对所述图片浏览指令指定的图片周边的多张图片进行读取和解析,将所述多张图片分别对应生成小图层与中图层或原图层的组合/小图层,然后将所述生成的图层存储于缓存中;翻页单元,用于接收到用户发出的翻页浏览图片的指令时,按照尺寸从小到大的顺序依次加载图层,所述加载的图层包括与翻页浏览指令指定的图片对应的小图层、中图层及原图层的其中ー种或多种。



图I是本发明实施例提供的图片浏览方法的流程图;图2是本发明实施例提供的翻页浏览图片的方法流程图;图3是本发明实施例提供的加载图层的方法流程图;图4是本发明实施例提供的图片加载队列的任务插入算法流程图;图5是本发明实施例提供的采用MVC模式实现图片浏览方法的示意图;图6是本发明实施例提供的图片浏览装置的示意图。
具体实施例方式为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进ー步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。本发明实施例通过将图片解码为原图层、中图层和小图层三种尺寸不同的图层,在浏览图片时,先从缓存中读取与图片打开指令对应的小图层进行显示,然后再读取与图片打开指令对应的中图层进行显示。且在浏览图片时,对正在浏览的图片周边的多张图片进行读取和解析,将这些图片分别对应生成中图层和小图层后将生成的中图层和小图层存储于缓存中,便于用户浏览后续图片。使得用户在浏览图片时,不再需要等待较长时间,避免了解码图片时的空白无响应状态,大大提升了用户体验。本发明提供了一种图片浏览的方法和装置所述方法包括接收用户输入的图片浏览指令;读取并解析所述图片浏览指令指定的图片,依次加载所述图片浏览指令指定的图片对应生成的小图层及中图层/原图层;扫描所述图片浏览指令指定的图片所在的文件夹,获取所述文件夹下所有图片的文件信息;对所述图片浏览指令指定的图片周边的多张图片进行读取和解析,将所述多张图片分别对应生成小图层与中图层或原图层的组合/小图层,然后将所述生成的图层存储于缓存中;接收到用户发出的翻页浏览图片的指令时,按照尺寸从小到大的顺序依次加载图层,所述加载的图层包括与翻页浏览指令指定的图片对应的小图层、中图层及原图层的其中ー种或多种。
所述装置包括图片浏览指令接收单元,用于接收用户输入的图片浏览指令;图片浏览单元,用于读取并解析所述图片浏览指令指定的图片,依次加载所述图片浏览指令指定的图片对应生成的小图层及中图层/原图层;文件夹扫描単元,用于扫描所述图片浏览指令指定的图片所在的文件夹,获取所述文件夹下所有图片的文件信息;图片预加载单元,用于对所述图片浏览指令指定的图片周边的多张图片进行读取和解析,将所述多张图片分别对应生成小图层与中图层或原图层的组合/小图层,然后将所述生成的图层存储于缓存中;
翻页单元,用于接收到用户发出的翻页浏览图片的指令时,按照尺寸从小到大的顺序依次加载图层,所述加载的图层包括与翻页浏览指令指定的图片对应的小图层、中图层及原图层的其中ー种或多种。为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。实施例一如图I所示为本发明第一实施例提供的ー种图片浏览方法的流程图,为了便于说明,仅不出了与本发明实施例相关的部分。在步骤SlOl中,接收用户输入的图片浏览指令。在本发明实施例中,用户输入的图片浏览指令包括但不限于双击图片等。在步骤S102中,读取并解析图片浏览指令指定的图片,依次加载图片浏览指令指定的图片对应生成的小图层及中图层/原图层。在本发明实施例中,根据用户输入的图片浏览指令,读取并解析图片浏览指令指定的图片,此处预设有图像生成线程ImageGenThread用于读取和解码图片,则线程ImageGenThread根据接收到的读取和解码图片的任务,对图片浏览指令指定的图片进行读取和解码,在解码过程中,将图片依次生成小图层、中图层和原图层三种尺寸不同的图层,并依次加载小图层和中图层/原图层。在本发明实施例中,读取并解码图片的过程中,将图片依次生成小图层、中图层和原图层三种尺寸不同的图层,其中,小图层的尺寸为120X120个像素,中图层的尺寸为800X800个像素,原图层的尺寸即为原图片的尺寸(若图片的尺寸小于800X800个像素,则不生成中图层,原图层既为中图层又为原图层)。在本发明实施例中,先加载图片对应生成的小图层,再加载图片对应生成的中图层/原图层。其中,当图片尺寸大于800*800个像素吋,读取图片对应的中图层进行显示;当图片尺寸小于800*800个像素时,没有生成中图层,则直接读取图片对应的原图层进行显不。在本发明实施例中,当图片尺寸大于800*800个像素时,由于尺寸为800X800个像素的中图层在普通图片浏览模式下,用户肉眼很难分辨中图层和原图像的差別,且中图层尺寸较小,加载较快,因此在显示完毕小图层后显示中图层,不再显示原图。只有当用户需要浏览细节图时,才显示原图。这样的显示方法,使得图片的显示过程是ー个由像素低的图层到像素高的图层逐步显示的过程,在用户看来,就是ー个图片由模糊到清晰的过程,相对于现有的空白相应的等待过程,用户体验更好。在步骤S103中,扫描正在浏览的图片所在的文件夹,获取该文件夹下所有图片的文件信息。在本发明实施例中,图片文件信息包括但不限于文件类型、文件名称等。UI绘制线程WRenderThread根据打开的文件夹路径向线程池发送扫描图片文件的任务,线程池在接收到扫描图片文件的任务后,图片文件信息收集线程ImagelnfoCollectionThread使用Windows API的类CFileFincK为ー个用于执行本地文件查找的类)中的FindFile (类CFileFind中用于查找一个目录中的指定文件的操作)和FindNextFile (类CFileFind中用于从FindFile以前调用开始继续下一查找的操作)得到文件夹下的所有图片文件信息,并把图片文件信息缓存至图片信息缓存ImageInf0Cache中。在步骤S104中,对正在浏览的图片周边的多张图片进行读取和解析,将周边多张 图片分别对应生成小图层与中图层或原图层的组合/小图层,然后将生成的图层存储于缓存中,并将小图层序列化。在本发明实施例中,在浏览图片时,需预先对正在浏览的图片周边的多张图片进行读取和解析,将这些图片分别对应生成小图层/小图层与中图层或原图层的组合,然后将生成的图层存储于图层缓存ImageCache中,并将小图层序列化。其中,图片周边既可以为图片的左边、右边或左右两边,若是在翻页浏览时,根据上一次浏览图片时用户的移动方向,便可知翻页方向是向左还是向右;若是浏览的第一张图片,因不知道翻页方向,则同时读取和解析两边的图片。小图层的序列化由预设的缩略图序列化线程ThumbPersistThread实现。在本发明实施例中,预先读取和解析的周边图片数根据缓存大小来确定,根据图片尺寸的不同,缓存的图层数有所不同,此处根据软件的实际应用效果,可预设图层缓存ImageCache的大小,例如可预设图层缓存ImageCache的大小为原图层I张、中图层8张、小图层32张,但并不限于此例。在步骤S105中,接收到用户发出的翻页浏览图片的指令时,按照尺寸从小到大的顺序依次加载图层,所述加载的图层包括与翻页浏览指令指定的图片对应的小图层、中图层及原图层的其中ー种或多种。在本发明实施例中,当接收到的是用户发出的普通翻页浏览的指令时,依次加载与用户发出的快速翻页浏览的指令指定的图片对应的小图层及中图层/原图层进行显示。在本发明实施例中,当接收到的是用户发出的快速翻页浏览的指令时,加载与用户发出的快速翻页浏览的指令指定的图片对应的小图层进行显示。因为在快速翻页的过程中,用户并不会详细查看图片的细节,仅显示小图层有利于减小浏览的等待时间。在本发明实施例中,首先,显示图片时,依次加载图片对应的小图层及中图层/原图层,避免了在浏览图片时出现空白无响应的状态,图片显示时从模糊到清晰的过程,大大提升了用户体验。且预先对正在浏览的图片周边的多张图片进行读取和解析,使得用户浏览下ー张图片或翻页浏览图片时,不再需要等待较长时间。实施例ニ 为了进一步细化本技术方案,如图2所示提供了ー种翻页浏览图片的方法流程图,为了便于说明,仅示出了与本发明实施例相关的部分。
在步骤S201中,接收用户发出的翻页浏览图片的指令;在步骤S202中,判断用户发出的翻页浏览图片的指令是否是快速翻页浏览指令,若是则执行步骤S205,否则执行步骤S203。在本发明实施例中,当UI绘制线程UIRenderThread接收到翻页浏览图片的指令时,需要判断当前用户是处于普通看图速度的翻页还是用户一直触发某个翻页键而产生的快速翻页状态。此处通过Windows API中的函数GetKeyState (该函数用于检取指定虚拟键的状态)可知当前翻页键是否处于一直被触发的状态,从而得知当前翻页状态是否是快速翻页,若当前翻页键处于一直被触发的状态,则为快速翻页状态,否则是普通翻页状态。其中,翻页键包括但不限于左右方向键、PageUp、PageDown等键。在步骤S203中,加载当前正在浏览的图片对应的中图层,并异步加载当前翻页趋势方向上多张图片对应的小图层。在本发明实施例中,根据上一次浏览图片时,用户的移动方向,便可知翻页方向是向左还是向右,若是浏览的第一张图片,不知道翻页方向,则同时加载两边的图片对应的小图层。其中,加载小图层的图片个数主要是考虑小图层的生成、加载时间及目前图片查看器的缩略图导航栏中屏幕最多能展示的缩略图个数后,综合得出加载小图层的图片个数为图片查看器的缩略图导航栏中屏幕最多能展示的缩略图个数的两倍。这时,既不会过多地占用小图层加载时间,也能很好地加载当前浏览图片周边的图片对应的小图层。在步骤S204中,加载当前翻页趋势方向上、与正在浏览的图片相邻的图片对应的中图层。在本发明实施例中,由于当n上等待的消息队列为空吋,OnIdle函数(Windows中利用CPU空闲时间运行的函数)会自动调用。因此,OnIdle函数可将记录下的当前翻页趋势方向上、与正在浏览的图片相邻的图片的中图层加载任务调出,发送给图像加载生成线程ImageGenThread,图像加载生成线程ImageGenThread则会加载当前翻页趋势方向上、与正在浏览的图片相邻的图片对应的中图层。在本发明实施例中,加载当前翻页趋势方向上、与正在浏览的图片相邻的图片的中图层的任务被设置在OnIdle函数中进行,充分利用了 UI线程的资源,使得用户在浏览当前图片时,下一张图片的中图层已经加载完毕,切換到下ー张图片时,就可直接显示下ー张图片清晰的中图层,而没有从模糊到清晰地过程。在步骤S205中,根据当前翻页方向,加载当前浏览的图片周边的多张图片对应的小图层。在本发明实施例中,加载小图层的图片个数是根据当前翻页趋势方向、小图层运动过程中的当前速度V(张/秒)和加速度a(张/秒~2)来确定的。假设用户在当前速度下立即停止翻页,从停止翻页到完全静止下来,缩略图导航栏上继续运动的图片张数为av~2/2。因此当前需要加载小图层的图片个数从距离当前浏览图片v~2パ2a)张的小图层图开始算起,直到临近当前浏览的图片的所有图片数。此种计算加载小图层的图片个数的方法避免了不必要的小图层加载。在本发明实施例中,快速翻页浏览时,若加载中图层会有较大的IO操作,占用较多CPU,且在快速翻页浏览的过程中,清晰地图片其实对用户的浏览意义不大。因此,在快速翻页浏览时,仅加载图片的小图层,以减少不必要的IO操作和CPU开销。
实施例三在本发明 实施例中,图3所示即为加载图层的具体流程,下面将详细说明,但并不限于此实施例。在本发明实施例中,加载图层的过程由预设的图像生成线程ImageGenThread完成。在步骤S301中,接收到图层加载任务,判断需加载的图层是否存在于缓存中,是则执行步骤S307,否则执行步骤S302。在步骤S302中,判断图层加载任务是否是加载小图层,是则执行步骤S303,否则执行步骤S306。在步骤S303中,判断需要加载的小图层是否存在于缩略图数据库中,是则执行步骤S304,否则执行步骤S305。在本发明实施例中,判断需要加载的小图层是否存在于缩略图数据库中,此处预设有缩略图数据库为ThumbDB。在步骤S304中,从缩略图数据库读取所需加载的小图层,并将此小图层存储至缓存中。在本发明实施例中,当需要加载的小图层存在于缩略图数据库中时,从缩略图数据库读取所需加载的小图层,并将此小图层存储至缓存中。在步骤S305中,解析所需浏览的图片生成对应的小图层,并将此小图层存储至缓存中。在本发明实施例中,当需要加载的小图层不存在于缩略图数据库中时,根据需要浏览的图片的路径解析所需浏览的图片生成此图片对应的小图层,并将此小图层存储至缓存中。在步骤S306中,生成所需浏览的图片对应的中图层或原图层,然后将图层存储至缓存中。在本发明实施例中,当图层加载任务不是加载小图层时,根据需要浏览的图片的路径解析所需浏览的图片生成此图片对应的中图层或原图层(当图片尺寸大于800*800个像素吋,生成中图层,当图片尺寸小于800*800个像素时,直接生成原图层),然后将生成的中图层或原图层存储至缓存中。在步骤S307中,获取图层内容后重新刷新界面。在本发明实施例中,图像生成线程ImageGenThread通知UI绘制线程UIRenderThread图层加载任务已完成,UI绘制线程WRenderThread从缓存中获取图层内容后重新刷新界面。在本发明实施例中,获得图片对应的各图层的加载任务是通过将图层加载任务插入图片加载队列后再获取图片加载任务,其中,预设有图片加载队列LoadlmageQueue。具体的图片加载队列的任务插入算法如图4所示,下面将详细描述在步骤S401中,根据待加入图片加载队列的图层加载任务的图层大小,获取图层缓存ImageCache中对应图层的上限。在本发明实施例中,根据待加入图片加载队列的图层加载任务的图层大小,获取图层缓存ImageCache中对应图层的上限。例如预设图层缓存ImageCache的大小为原图层I张、中图层8张、小图层32张。则当待加入图片加载队列的图层加载任务的图层类型为中图层时,读取中图层上限为8张。此处,图层上限称为CACHE_UMIT_SIZE。在步骤S402中,判断待加入图片加载队列的图层加载任务是否已经存在于图片加载队列中,若是则执行步骤S403,否则执行步骤S404。在步骤S403中,删除已存在于图片加载队列中的图层加载任务。在步骤S404中,将上述待加入图片加载队列的图层加载任务添加到图片加载队列头中。 在步骤S405中,判断当前图片加载队列的长度是否超过对应图层的上限,若是则执行步骤S406。在步骤S406中,删除图片加载队列尾部的图层加载任务。在本发明实施例中,这种图层加载任务获取算法的时间复杂度主要取决于查找待加入图片加载队列的图层加载任务是否已经存在于图片加载队列中和删除已存在于图片加载队列中的图层加载任务。当查找待加入图片加载队列的图层加载任务是否已经存在于图片加载队列中采用哈希实现时,时间复杂度接近0(1),而删除已存在于图片加载队列中的图层加载任务及将上述待加入图片加载队列的图层加载任务添加到图片加载队列头中的时间复杂度均为0(1),因此,此算法的时间复杂度为0(1),因此,此算法的效率很高。在本发明实施例中,在将图层加载任务插入图片加载队列后,直接从图片加载队列中获取图片加载队列头部的任务即可获得图层加载任务。此算法的时间复杂度仅为0(1),效率很高。实施例四在本发明实施例中,提供了一种用于实现图片浏览方法的具体方式,即采用MVC(Model模型-View视图-Controller控制器)框架模式实现,如图5所示。对于MVC而言,模型(Model)指程序员编写程序应有的功能(实现算法等等)、数据库专家进行数据管理和数据库设计(可以实现具体的功能);视图(View)指界面设计人员进行图形界面设计;控制器(Controller)指负责转发请求,对请求进行处理。在本发明实施例中,视图(View)是指界面的View层,这里是指绘制的H,由n绘制线程UIRenderThread实现。其中,n绘制线程WRenderThread用于从缓存中获取图片信息后,进行界面的绘制。在本发明实施例中,控制器(Controller)由线程部分和数据部分组成,分别是图片文件信息收集线程ImagelnfoCollectionThread、图像生成线程ImageGenThreacU缩略图序列化线程ThumbPersistThreacU图片信息缓存ImagelnfoCache、图层缓存ImageCache及图片加载队列LoadImageQueue。其中,图片文件信息收集线程ImagelnfoCollectionThread用于利用WindowsAPI获取所在文件夹下所有的图片文件信息。图像生成线程ImageGenThread用于将需要浏览的图片对应的图层加载到缓存中,然后通知UI绘制线程MRenderThread重新绘制界面。缩略图序列化线程ThumbPersistThread用于序列化小图层。
图片イ目息缓存ImagelnfoCache用于缓存所在文件夹下所有图片イ目息。图层缓存ImageCache用于缓存不同大小的图层。图片加载队列LoadImageQueue用于设置不同图层加载的任务队列。在本发明实施例中,模型(Model)用于存储数据,为缩略图数据库ThumbDB。实施例五图6示出了本发明实施例提供的图片浏览装置的结构,为了便于说明,仅示出了与本发明实施例相关的部份。该装置可以是内置于软件系统中的软件单元、硬件単元或者软硬件相结合的単元,或者作为独立的挂件集成到软件系统或软件系统的应用系统中。其 中图片浏览指令接收单元61,用于接收用户输入的图片浏览指令。图片浏览单元62,用于读取并解析图片浏览指令指定的图片,依次加载图片浏览指令指定的图片对应生成的小图层及中图层/原图层。在本发明实施例中,图片浏览单元62包括两个模块,分别是图片解析模块621及图层加载模块622。其中图片解析模块621,用于读取并解析图片浏览指令指定的图片。 图层加载模块622,用于加载图层。在本发明实施例中,读取并解码图片的过程中,将图片依次生成小图层、中图层和原图层三种尺寸不同的图层,其中,小图层的尺寸为120X120个像素,中图层的尺寸为800X800个像素,原图层的尺寸即为原图片的尺寸(原图片的尺寸小于800X800个像素时,不生成中图层,原图层既为中图层又为原图层)。在本发明实施例中,先加载图片对应生成的小图层,再加载图片对应生成的中图层/原图层。其中,当图片尺寸大于800*800个像素吋,读取图片对应的中图层进行显示;当图片尺寸小于800*800个像素时,没有生成中图层,则直接读取图片对应的原图层进行显不。在本发明实施例中,当图片尺寸大于800*800个像素时,由于尺寸为800X800个像素的中图层在普通图片浏览模式下,用户肉眼很难分辨中图层和原图像的差別,且中图层尺寸较小,加载较快,因此在显示完毕小图层后显示中图层,不再显示原图。只有当用户需要浏览细节图时,才显示原图。这样的显示方法,使得图片的显示过程是ー个由像素低的图层到像素高的图层逐步显示的过程,在用户看来,就是ー个图片由模糊到清晰的过程,相对于现有的空白相应的等待过程,用户体验更好。文件夹扫描单元63,用于扫描正在浏览的图片所在的文件夹,获取该文件夹下所有图片的文件信息。在本发明实施例中,图片文件信息包括但不限于文件类型、文件名称等。图片预加载单元64,用于对正在浏览的图片周边的多张图片进行读取和解析,将这些图片分别对应生成小图层与中图层或原图层的组合/小图层,然后将生成的图层存储于缓存中,并将小图层序列化。在本发明实施例中,图片周边既可以为图片的左边、右边或左右两边,若是在翻页浏览时,根据上一次浏览图片时用户的移动方向,便可知翻页方向是向左还是向右;若是浏览的第一张图片,因不知道翻页方向,则同时读取和解析两边的图片。翻页单元65,用于当接收到用户发出的翻页浏览图片的指令时,按照尺寸从小到大的顺序依次加载图层,所述加载的图层包括与翻页浏览指令指定的图片对应的小图层、中图层及原图层的其中ー种或多种。在本发明实施例中,翻页单元65包括判断模块651、普通翻页浏览模块652、及快速翻页浏览模块653。其中判断模块651,用于判断用户发出的翻页浏览图片的指令是否是快速翻页浏览指令。
普通翻页浏览模块652,用于加载当前正在浏览的图片对应的中图层,异步加载当前翻页趋势方向上多张图片对应的小图层,并加载当前翻页趋势方向上、与正在浏览的图片相邻的图片的中图层。快速翻页浏览模块653,用于根据当前翻页方向,加载当前浏览的图片周边的多张图片的小图层。缓存单元66,用于缓存图片对应生成的小图层、中图层及原图层。在本发明实施例中,首先,显示图片时,依次加载图片对应的小图层及中图层/原图层,避免了在浏览图片时出现空白无响应的状态,图片显示时从模糊到清晰的过程,大大提升了用户体验。且预先对正在浏览的图片周边的多张图片进行读取和解析,使得用户浏览下ー张图片或翻页浏览图片时,不再需要等待较长时间。本领域普通技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以在存储于ー计算机可读取存储介质中,所述的存储介质,如R0M/RAM、磁盘、光盘等。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
权利要求
1.ー种图片浏览方法,其特征在于,所述方法包括下述步骤 接收用户输入的图片浏览指令; 读取并解析所述图片浏览指令指定的图片,依次加载所述图片浏览指令指定的图片对应生成的小图层及中图层/原图层; 扫描所述图片浏览指令指定的图片所在的文件夹,获取所述文件夹下所有图片的文件信息; 对所述图片浏览指令指定的图片周边的多张图片进行读取和解析,将所述多张图片分别对应生成小图层与中图层或原图层的组合/小图层,然后将所述生成的图层存储于缓存中; 接收到用户发出的翻页浏览图片的指令时,按照尺寸从小到大的顺序依次加载图层,所述加载的图层包括与翻页浏览指令指定的图片对应的小图层、中图层及原图层的其中一种或多种。
2.如权利要求I所述的方法,其特征在于,所述对正在浏览的图片周边的多张图片进行读取和解析,将所述多张图片分别对应生成小图层与中图层或原图层的组合/小图层,然后将生成的图层存储于缓存中的步骤还包括 将所述生成的小图层序列化。
3.如权利要求I所述的方法,其特征在于,所述接收到用户发出的翻页浏览图片的指令时,按照尺寸从小到大的顺序依次加载图层,所述加载的图层包括与翻页浏览指令指定的图片对应的小图层、中图层及原图层的其中ー种或多种的步骤具体为 当接收到的用户发出的翻页浏览图片的指令是快速翻页浏览指令时,根据当前翻页方向,加载当前浏览的图片周边的多张图片对应的小图层; 当接收到的用户发出的翻页浏览图片的指令不是快速翻页浏览指令时,加载当前正在浏览的图片对应的中图层,异步加载当前翻页趋势方向上多张图片对应的小图层,并加载当前翻页趋势方向上、与正在浏览的图片相邻的图片对应的中图层。
4.如权利要求I所述的方法,其特征在于,所述图层通过如下方式加载 当需加载的图层存在于缓存中时,获取所述需加载的图层后重新刷新界面; 当需加载的图层不存在于缓存中,且需加载的图层为小图层时,从缩略图数据库读取所述需加载的小图层; 当需加载的图层为小图层且不存在于缓存及缩略图数据库中时,解析所需浏览的图片生成与所述需浏览的图片对应的小图层,并将所述生成的小图层存储至缓存中; 当需加载的图层不存在于缓存中,且需加载的图层不为小图层时,解析所需浏览的图片生成与所述需浏览的图片对应的中图层或原图层,然后将所述生成的中图层或原图层存储至缓存中。
5.如权利要求I至4所述的方法,其特征在于,所述小图层的尺寸为120X 120个像素,中图层的尺寸为800X800个像素,原图层的尺寸为原图片的尺寸。
6.如权利要求I至4所述的方法,其特征在于,在对图片生成相应的图层时,当图片的尺寸小于800X800个像素时,不生成中图层,将原图层作为中图层和原图层。
7.ー种图片浏览装置,其特征在于,所述装置包括 图片浏览指令接收单元,用于接收用户输入的图片浏览指令;图片浏览单元,用于读取并解析所述图片浏览指令指定的图片,依次加载所述图片浏览指令指定的图片对应生成的小图层及中图层/原图层; 文件夹扫描単元,用于扫描所述图片浏览指令指定的图片所在的文件夹,获取所述文件夹下所有图片的文件信息; 图片预加载单元,用于对所述图片浏览指令指定的图片周边的多张图片进行读取和解祈,将所述多张图片分别对应生成小图层与中图层或原图层的组合/小图层,然后将所述生成的图层存储于缓存中; 翻页单元,用于接收到用户发出的翻页浏览图片的指令时,按照尺寸从小到大的顺序依次加载图层,所述加载的图层包括与翻页浏览指令指定的图片对应的小图层、中图层及原图层的其中ー种或多种。
8.如权利要求7所述的装置,其特征在于,所述装置还包括 缓存单元,用于缓存图片对应生成的小图层、中图层及原图层。
9.如权利要求7所述的装置,其特征在于,所述图片浏览单元包括 图片解析模块,用于读取并解析图片浏览指令指定的图片; 图层加载模块,用于加载图层。
10.如权利要求7所述的装置,其特征在于,所述翻页単元包括 判断模块,用于判断用户发出的翻页浏览图片的指令是否是快速翻页浏览指令; 普通翻页浏览模块,用于加载当前正在浏览的图片对应的中图层,异步加载当前翻页趋势方向上多张图片对应的小图层,并加载当前翻页趋势方向上、与正在浏览的图片相邻的图片对应的中图层; 快速翻页浏览模块,用于根据当前翻页方向,加载当前浏览的图片周边的多张图片的小图层。
全文摘要
本发明适用于计算机软件领域,提供了一种图片浏览的方法及装置,所述方法包括接收用户输入的图片浏览指令;读取并解析所述图片浏览指令指定的图片,依次加载所述图片浏览指令指定的图片对应生成的小图层及中图层/原图层;扫描所述图片浏览指令指定的图片所在的文件夹,获取所述文件夹下所有图片的文件信息;对图片浏览指令指定的图片周边的多张图片进行读取和解析,将多张图片分别对应生成小图层与中图层或原图层的组合/小图层,然后将生成的图层存储于缓存中;接收到用户发出的翻页浏览图片的指令时,按照尺寸从小到大的顺序依次加载图层,加载的图层包括与翻页浏览指令指定的图片对应的小图层、中图层及原图层的其中一种或多种。
文档编号G06F17/30GK102651001SQ20111004760
公开日2012年8月29日 申请日期2011年2月28日 优先权日2011年2月28日
发明者吴永坚, 李慧, 王佳 申请人:腾讯科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1