CN102651001B - 一种图片浏览的方法及装置 - Google Patents
一种图片浏览的方法及装置 Download PDFInfo
- Publication number
- CN102651001B CN102651001B CN201110047603.3A CN201110047603A CN102651001B CN 102651001 B CN102651001 B CN 102651001B CN 201110047603 A CN201110047603 A CN 201110047603A CN 102651001 B CN102651001 B CN 102651001B
- Authority
- CN
- China
- Prior art keywords
- layer
- picture
- little
- browsing
- pictures
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- User Interface Of Digital Computer (AREA)
Abstract
本发明适用于计算机软件领域,提供了一种图片浏览的方法及装置,所述方法包括:接收用户输入的图片浏览指令;读取并解析所述图片浏览指令指定的图片,依次加载所述图片浏览指令指定的图片对应生成的小图层及中图层/原图层;扫描所述图片浏览指令指定的图片所在的文件夹,获取所述文件夹下所有图片的文件信息;对图片浏览指令指定的图片周边的多张图片进行读取和解析,将多张图片分别对应生成小图层与中图层或原图层的组合/小图层,然后将生成的图层存储于缓存中;接收到用户发出的翻页浏览图片的指令时,按照尺寸从小到大的顺序依次加载图层,加载的图层包括与翻页浏览指令指定的图片对应的小图层、中图层及原图层的其中一种或多种。
Description
技术领域
本发明属于计算机软件领域,尤其涉及一种图片浏览的方法及装置。
背景技术
在互联网渐渐融入日常生活后,在网上浏览或下载各种图片已成为很多人日常生活的一部分,数码相机的流行,又使得对高质量图片的浏览也成为很多人生活中不可或缺的一部分。且相对于以往的打印或冲洗照片而言,通过各种图片查看软件给人们提供了更多的方便和实惠。
然而,在人们通过图片查看软件浏览图片时,由于图片查看软件只针对正在浏览的图片进行直接解码,因此,当用户查看的图片像素高时,用户需要等待很长时间;当用户快速地翻页浏览图片时,容易出现很长时间的界面空白忙碌无响应状态。
因此,现有的图片查看软件,主要存在以下缺陷:
1、等待时间长、经常出现忙碌状态;
2、如果用户当前查看的图片像素高时,解码时间较长,用户需要等待很长时间;
3、当用户快速地翻页浏览图片时,导致占用时间长,UI响应缓慢,用户体验差。
发明内容
本发明实施例的目的在于提供一种图片浏览的方法及装置,旨在解决用户在浏览图片时,响应缓慢、用户体验差的问题。
本发明实施例是这样实现的,一种图片浏览的方法,所述方法包括如下步骤:
接收用户输入的图片浏览指令;
读取并解析所述图片浏览指令指定的图片,依次加载所述图片浏览指令指定的图片对应生成的小图层及中图层/原图层;
扫描所述图片浏览指令指定的图片所在的文件夹,获取所述文件夹下所有图片的文件信息;
对所述图片浏览指令指定的图片周边的多张图片进行读取和解析,将所述多张图片分别对应生成小图层与中图层或原图层的组合/小图层,然后将所述生成的图层存储于缓存中;
接收到用户发出的翻页浏览图片的指令时,按照尺寸从小到大的顺序依次加载图层,所述加载的图层包括与翻页浏览指令指定的图片对应的小图层、中图层及原图层的其中一种或多种。
本发明实施例的另一目的在于提供一种图片浏览的装置,所述装置包括:
图片浏览指令接收单元,用于接收用户输入的图片浏览指令;
图片浏览单元,用于读取并解析所述图片浏览指令指定的图片,依次加载所述图片浏览指令指定的图片对应生成的小图层及中图层/原图层;
文件夹扫描单元,用于扫描所述图片浏览指令指定的图片所在的文件夹,获取所述文件夹下所有图片的文件信息;
图片预加载单元,用于对所述图片浏览指令指定的图片周边的多张图片进行读取和解析,将所述多张图片分别对应生成小图层与中图层或原图层的组合/小图层,然后将所述生成的图层存储于缓存中;
翻页单元,用于接收到用户发出的翻页浏览图片的指令时,按照尺寸从小到大的顺序依次加载图层,所述加载的图层包括与翻页浏览指令指定的图片对应的小图层、中图层及原图层的其中一种或多种。
附图说明
图1是本发明实施例提供的图片浏览方法的流程图;
图2是本发明实施例提供的翻页浏览图片的方法流程图;
图3是本发明实施例提供的加载图层的方法流程图;
图4是本发明实施例提供的图片加载队列的任务插入算法流程图;
图5是本发明实施例提供的采用MVC模式实现图片浏览方法的示意图;
图6是本发明实施例提供的图片浏览装置的示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例通过将图片解码为原图层、中图层和小图层三种尺寸不同的图层,在浏览图片时,先从缓存中读取与图片打开指令对应的小图层进行显示,然后再读取与图片打开指令对应的中图层进行显示。且在浏览图片时,对正在浏览的图片周边的多张图片进行读取和解析,将这些图片分别对应生成中图层和小图层后将生成的中图层和小图层存储于缓存中,便于用户浏览后续图片。使得用户在浏览图片时,不再需要等待较长时间,避免了解码图片时的空白无响应状态,大大提升了用户体验。
本发明提供了一种图片浏览的方法和装置:
所述方法包括:
接收用户输入的图片浏览指令;
读取并解析所述图片浏览指令指定的图片,依次加载所述图片浏览指令指定的图片对应生成的小图层及中图层/原图层;
扫描所述图片浏览指令指定的图片所在的文件夹,获取所述文件夹下所有图片的文件信息;
对所述图片浏览指令指定的图片周边的多张图片进行读取和解析,将所述多张图片分别对应生成小图层与中图层或原图层的组合/小图层,然后将所述生成的图层存储于缓存中;
接收到用户发出的翻页浏览图片的指令时,按照尺寸从小到大的顺序依次加载图层,所述加载的图层包括与翻页浏览指令指定的图片对应的小图层、中图层及原图层的其中一种或多种。
所述装置包括:
图片浏览指令接收单元,用于接收用户输入的图片浏览指令;
图片浏览单元,用于读取并解析所述图片浏览指令指定的图片,依次加载所述图片浏览指令指定的图片对应生成的小图层及中图层/原图层;
文件夹扫描单元,用于扫描所述图片浏览指令指定的图片所在的文件夹,获取所述文件夹下所有图片的文件信息;
图片预加载单元,用于对所述图片浏览指令指定的图片周边的多张图片进行读取和解析,将所述多张图片分别对应生成小图层与中图层或原图层的组合/小图层,然后将所述生成的图层存储于缓存中;
翻页单元,用于接收到用户发出的翻页浏览图片的指令时,按照尺寸从小到大的顺序依次加载图层,所述加载的图层包括与翻页浏览指令指定的图片对应的小图层、中图层及原图层的其中一种或多种。
为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
实施例一:
如图1所示为本发明第一实施例提供的一种图片浏览方法的流程图,为了便于说明,仅示出了与本发明实施例相关的部分。
在步骤S101中,接收用户输入的图片浏览指令。
在本发明实施例中,用户输入的图片浏览指令包括但不限于双击图片等。
在步骤S102中,读取并解析图片浏览指令指定的图片,依次加载图片浏览指令指定的图片对应生成的小图层及中图层/原图层。
在本发明实施例中,根据用户输入的图片浏览指令,读取并解析图片浏览指令指定的图片,此处预设有图像生成线程ImageGenThread用于读取和解码图片,则线程ImageGenThread根据接收到的读取和解码图片的任务,对图片浏览指令指定的图片进行读取和解码,在解码过程中,将图片依次生成小图层、中图层和原图层三种尺寸不同的图层,并依次加载小图层和中图层/原图层。
在本发明实施例中,读取并解码图片的过程中,将图片依次生成小图层、中图层和原图层三种尺寸不同的图层,其中,小图层的尺寸为120×120个像素,中图层的尺寸为800×800个像素,原图层的尺寸即为原图片的尺寸(若图片的尺寸小于800×800个像素,则不生成中图层,原图层既为中图层又为原图层)。
在本发明实施例中,先加载图片对应生成的小图层,再加载图片对应生成的中图层/原图层。其中,当图片尺寸大于800*800个像素时,读取图片对应的中图层进行显示;当图片尺寸小于800*800个像素时,没有生成中图层,则直接读取图片对应的原图层进行显示。
在本发明实施例中,当图片尺寸大于800*800个像素时,由于尺寸为800×800个像素的中图层在普通图片浏览模式下,用户肉眼很难分辨中图层和原图像的差别,且中图层尺寸较小,加载较快,因此在显示完毕小图层后显示中图层,不再显示原图。只有当用户需要浏览细节图时,才显示原图。
这样的显示方法,使得图片的显示过程是一个由像素低的图层到像素高的图层逐步显示的过程,在用户看来,就是一个图片由模糊到清晰的过程,相对于现有的空白相应的等待过程,用户体验更好。
在步骤S103中,扫描正在浏览的图片所在的文件夹,获取该文件夹下所有图片的文件信息。
在本发明实施例中,图片文件信息包括但不限于文件类型、文件名称等。UI绘制线程UIRenderThread根据打开的文件夹路径向线程池发送扫描图片文件的任务,线程池在接收到扫描图片文件的任务后,图片文件信息收集线程ImageInfoCollectionThread使用WindowsAPI的类CFileFind(为一个用于执行本地文件查找的类)中的FindFile(类CFileFind中用于查找一个目录中的指定文件的操作)和FindNextFile(类CFileFind中用于从FindFile以前调用开始继续下一查找的操作)得到文件夹下的所有图片文件信息,并把图片文件信息缓存至图片信息缓存ImageInfoCache中。
在步骤S104中,对正在浏览的图片周边的多张图片进行读取和解析,将周边多张图片分别对应生成小图层与中图层或原图层的组合/小图层,然后将生成的图层存储于缓存中,并将小图层序列化。
在本发明实施例中,在浏览图片时,需预先对正在浏览的图片周边的多张图片进行读取和解析,将这些图片分别对应生成小图层/小图层与中图层或原图层的组合,然后将生成的图层存储于图层缓存ImageCache中,并将小图层序列化。其中,图片周边既可以为图片的左边、右边或左右两边,若是在翻页浏览时,根据上一次浏览图片时用户的移动方向,便可知翻页方向是向左还是向右;若是浏览的第一张图片,因不知道翻页方向,则同时读取和解析两边的图片。小图层的序列化由预设的缩略图序列化线程ThumbPersistThread实现。
在本发明实施例中,预先读取和解析的周边图片数根据缓存大小来确定,根据图片尺寸的不同,缓存的图层数有所不同,此处根据软件的实际应用效果,可预设图层缓存ImageCache的大小,例如可预设图层缓存ImageCache的大小为原图层1张、中图层8张、小图层32张,但并不限于此例。
在步骤S105中,接收到用户发出的翻页浏览图片的指令时,按照尺寸从小到大的顺序依次加载图层,所述加载的图层包括与翻页浏览指令指定的图片对应的小图层、中图层及原图层的其中一种或多种。
在本发明实施例中,当接收到的是用户发出的普通翻页浏览的指令时,依次加载与用户发出的快速翻页浏览的指令指定的图片对应的小图层及中图层/原图层进行显示。
在本发明实施例中,当接收到的是用户发出的快速翻页浏览的指令时,加载与用户发出的快速翻页浏览的指令指定的图片对应的小图层进行显示。因为在快速翻页的过程中,用户并不会详细查看图片的细节,仅显示小图层有利于减小浏览的等待时间。
在本发明实施例中,首先,显示图片时,依次加载图片对应的小图层及中图层/原图层,避免了在浏览图片时出现空白无响应的状态,图片显示时从模糊到清晰的过程,大大提升了用户体验。且预先对正在浏览的图片周边的多张图片进行读取和解析,使得用户浏览下一张图片或翻页浏览图片时,不再需要等待较长时间。
实施例二:
为了进一步细化本技术方案,如图2所示提供了一种翻页浏览图片的方法流程图,为了便于说明,仅示出了与本发明实施例相关的部分。
在步骤S201中,接收用户发出的翻页浏览图片的指令;
在步骤S202中,判断用户发出的翻页浏览图片的指令是否是快速翻页浏览指令,若是则执行步骤S205,否则执行步骤S203。
在本发明实施例中,当UI绘制线程UIRenderThread接收到翻页浏览图片的指令时,需要判断当前用户是处于普通看图速度的翻页还是用户一直触发某个翻页键而产生的快速翻页状态。此处通过WindowsAPI中的函数GetKeyState(该函数用于检取指定虚拟键的状态)可知当前翻页键是否处于一直被触发的状态,从而得知当前翻页状态是否是快速翻页,若当前翻页键处于一直被触发的状态,则为快速翻页状态,否则是普通翻页状态。其中,翻页键包括但不限于左右方向键、PageUp、PageDown等键。
在步骤S203中,加载当前正在浏览的图片对应的中图层,并异步加载当前翻页趋势方向上多张图片对应的小图层。
在本发明实施例中,根据上一次浏览图片时,用户的移动方向,便可知翻页方向是向左还是向右,若是浏览的第一张图片,不知道翻页方向,则同时加载两边的图片对应的小图层。其中,加载小图层的图片个数主要是考虑小图层的生成、加载时间及目前图片查看器的缩略图导航栏中屏幕最多能展示的缩略图个数后,综合得出加载小图层的图片个数为图片查看器的缩略图导航栏中屏幕最多能展示的缩略图个数的两倍。这时,既不会过多地占用小图层加载时间,也能很好地加载当前浏览图片周边的图片对应的小图层。
在步骤S204中,加载当前翻页趋势方向上、与正在浏览的图片相邻的图片对应的中图层。
在本发明实施例中,由于当UI上等待的消息队列为空时,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绘制线程UIRenderThread从缓存中获取图层内容后重新刷新界面。
在本发明实施例中,获得图片对应的各图层的加载任务是通过将图层加载任务插入图片加载队列后再获取图片加载任务,其中,预设有图片加载队列LoadImageQueue。具体的图片加载队列的任务插入算法如图4所示,下面将详细描述:
在步骤S401中,根据待加入图片加载队列的图层加载任务的图层大小,获取图层缓存ImageCache中对应图层的上限。
在本发明实施例中,根据待加入图片加载队列的图层加载任务的图层大小,获取图层缓存ImageCache中对应图层的上限。例如:预设图层缓存ImageCache的大小为原图层1张、中图层8张、小图层32张。则当待加入图片加载队列的图层加载任务的图层类型为中图层时,读取中图层上限为8张。此处,图层上限称为CACHE_LIMIT_SIZE。
在步骤S402中,判断待加入图片加载队列的图层加载任务是否已经存在于图片加载队列中,若是则执行步骤S403,否则执行步骤S404。
在步骤S403中,删除已存在于图片加载队列中的图层加载任务。
在步骤S404中,将上述待加入图片加载队列的图层加载任务添加到图片加载队列头中。
在步骤S405中,判断当前图片加载队列的长度是否超过对应图层的上限,若是则执行步骤S406。
在步骤S406中,删除图片加载队列尾部的图层加载任务。
在本发明实施例中,这种图层加载任务获取算法的时间复杂度主要取决于查找待加入图片加载队列的图层加载任务是否已经存在于图片加载队列中和删除已存在于图片加载队列中的图层加载任务。当查找待加入图片加载队列的图层加载任务是否已经存在于图片加载队列中采用哈希实现时,时间复杂度接近O(1),而删除已存在于图片加载队列中的图层加载任务及将上述待加入图片加载队列的图层加载任务添加到图片加载队列头中的时间复杂度均为O(1),因此,此算法的时间复杂度为O(1),因此,此算法的效率很高。
在本发明实施例中,在将图层加载任务插入图片加载队列后,直接从图片加载队列中获取图片加载队列头部的任务即可获得图层加载任务。此算法的时间复杂度仅为O(1),效率很高。
实施例四:
在本发明实施例中,提供了一种用于实现图片浏览方法的具体方式,即采用MVC(Model模型-View视图-Controller控制器)框架模式实现,如图5所示。
对于MVC而言,模型(Model)指:程序员编写程序应有的功能(实现算法等等)、数据库专家进行数据管理和数据库设计(可以实现具体的功能);
视图(View)指:界面设计人员进行图形界面设计;
控制器(Controller)指:负责转发请求,对请求进行处理。
在本发明实施例中,视图(View)是指界面的View层,这里是指绘制的UI,由UI绘制线程UIRenderThread实现。
其中,UI绘制线程UIRenderThread用于从缓存中获取图片信息后,进行界面的绘制。
在本发明实施例中,控制器(Controller)由线程部分和数据部分组成,分别是图片文件信息收集线程ImageInfoCollectionThread、图像生成线程ImageGenThread、缩略图序列化线程ThumbPersistThread、图片信息缓存ImageInfoCache、图层缓存ImageCache及图片加载队列LoadImageQueue。
其中,图片文件信息收集线程ImageInfoCollectionThread用于利用WindowsAPI获取所在文件夹下所有的图片文件信息。
图像生成线程ImageGenThread用于将需要浏览的图片对应的图层加载到缓存中,然后通知UI绘制线程UIRenderThread重新绘制界面。
缩略图序列化线程ThumbPersistThread用于序列化小图层。
图片信息缓存ImageInfoCache用于缓存所在文件夹下所有图片信息。
图层缓存ImageCache用于缓存不同大小的图层。
图片加载队列LoadImageQueue用于设置不同图层加载的任务队列。
在本发明实施例中,模型(Model)用于存储数据,为缩略图数据库ThumbDB。
实施例五:
图6示出了本发明实施例提供的图片浏览装置的结构,为了便于说明,仅示出了与本发明实施例相关的部份。该装置可以是内置于软件系统中的软件单元、硬件单元或者软硬件相结合的单元,或者作为独立的挂件集成到软件系统或软件系统的应用系统中。其中:
图片浏览指令接收单元61,用于接收用户输入的图片浏览指令。
图片浏览单元62,用于读取并解析图片浏览指令指定的图片,依次加载图片浏览指令指定的图片对应生成的小图层及中图层/原图层。
在本发明实施例中,图片浏览单元62包括两个模块,分别是图片解析模块621及图层加载模块622。其中:
图片解析模块621,用于读取并解析图片浏览指令指定的图片。
图层加载模块622,用于加载图层。
在本发明实施例中,读取并解码图片的过程中,将图片依次生成小图层、中图层和原图层三种尺寸不同的图层,其中,小图层的尺寸为120×120个像素,中图层的尺寸为800×800个像素,原图层的尺寸即为原图片的尺寸(原图片的尺寸小于800×800个像素时,不生成中图层,原图层既为中图层又为原图层)。
在本发明实施例中,先加载图片对应生成的小图层,再加载图片对应生成的中图层/原图层。其中,当图片尺寸大于800*800个像素时,读取图片对应的中图层进行显示;当图片尺寸小于800*800个像素时,没有生成中图层,则直接读取图片对应的原图层进行显示。
在本发明实施例中,当图片尺寸大于800*800个像素时,由于尺寸为800×800个像素的中图层在普通图片浏览模式下,用户肉眼很难分辨中图层和原图像的差别,且中图层尺寸较小,加载较快,因此在显示完毕小图层后显示中图层,不再显示原图。只有当用户需要浏览细节图时,才显示原图。
这样的显示方法,使得图片的显示过程是一个由像素低的图层到像素高的图层逐步显示的过程,在用户看来,就是一个图片由模糊到清晰的过程,相对于现有的空白相应的等待过程,用户体验更好。
文件夹扫描单元63,用于扫描正在浏览的图片所在的文件夹,获取该文件夹下所有图片的文件信息。
在本发明实施例中,图片文件信息包括但不限于文件类型、文件名称等。
图片预加载单元64,用于对正在浏览的图片周边的多张图片进行读取和解析,将这些图片分别对应生成小图层与中图层或原图层的组合/小图层,然后将生成的图层存储于缓存中,并将小图层序列化。
在本发明实施例中,图片周边既可以为图片的左边、右边或左右两边,若是在翻页浏览时,根据上一次浏览图片时用户的移动方向,便可知翻页方向是向左还是向右;若是浏览的第一张图片,因不知道翻页方向,则同时读取和解析两边的图片。
翻页单元65,用于当接收到用户发出的翻页浏览图片的指令时,按照尺寸从小到大的顺序依次加载图层,所述加载的图层包括与翻页浏览指令指定的图片对应的小图层、中图层及原图层的其中一种或多种。
在本发明实施例中,翻页单元65包括判断模块651、普通翻页浏览模块652、及快速翻页浏览模块653。其中:
判断模块651,用于判断用户发出的翻页浏览图片的指令是否是快速翻页浏览指令。
普通翻页浏览模块652,用于加载当前正在浏览的图片对应的中图层,异步加载当前翻页趋势方向上多张图片对应的小图层,并加载当前翻页趋势方向上、与正在浏览的图片相邻的图片的中图层。
快速翻页浏览模块653,用于根据当前翻页方向,加载当前浏览的图片周边的多张图片的小图层。
缓存单元66,用于缓存图片对应生成的小图层、中图层及原图层。
在本发明实施例中,首先,显示图片时,依次加载图片对应的小图层及中图层/原图层,避免了在浏览图片时出现空白无响应的状态,图片显示时从模糊到清晰的过程,大大提升了用户体验。且预先对正在浏览的图片周边的多张图片进行读取和解析,使得用户浏览下一张图片或翻页浏览图片时,不再需要等待较长时间。
本领域普通技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以在存储于一计算机可读取存储介质中,所述的存储介质,如ROM/RAM、磁盘、光盘等。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种图片浏览方法,其特征在于,所述方法包括下述步骤:
接收用户输入的图片浏览指令;
读取并解析所述图片浏览指令指定的图片,依次加载所述图片浏览指令指定的图片对应生成的小图层及中图层/原图层;
扫描所述图片浏览指令指定的图片所在的文件夹,获取所述文件夹下所有图片的文件信息;
对所述图片浏览指令指定的图片周边的多张图片进行读取和解析,将所述多张图片分别对应生成小图层与中图层或原图层的组合/小图层,然后将所述生成的图层存储于缓存中;
接收到用户发出的翻页浏览图片的指令时,按照尺寸从小到大的顺序依次加载图层,所述加载的图层包括与翻页浏览指令指定的图片对应的小图层、中图层及原图层的其中一种或多种;
其中,所述接收到用户发出的翻页浏览图片的指令时,按照尺寸从小到大的顺序依次加载图层,所述加载的图层包括与翻页浏览指令指定的图片对应的小图层、中图层及原图层的其中一种或多种的步骤具体为:
当接收到的用户发出的翻页浏览图片的指令是快速翻页浏览指令时,根据当前翻页方向,加载当前浏览的图片周边的多张图片对应的小图层;
当接收到的用户发出的翻页浏览图片的指令不是快速翻页浏览指令时,加载当前正在浏览的图片对应的中图层,异步加载当前翻页趋势方向上多张图片对应的小图层,并加载当前翻页趋势方向上、与正在浏览的图片相邻的图片对应的中图层。
2.如权利要求1所述的方法,其特征在于,所述对正在浏览的图片周边的多张图片进行读取和解析,将所述多张图片分别对应生成小图层与中图层或原图层的组合/小图层,然后将生成的图层存储于缓存中的步骤还包括:
将所述生成的小图层序列化。
3.如权利要求1所述的方法,其特征在于,所述图层通过如下方式加载:
当需加载的图层存在于缓存中时,获取所述需加载的图层后重新刷新界面;
当需加载的图层不存在于缓存中,且需加载的图层为小图层时,从缩略图数据库读取所述需加载的小图层;
当需加载的图层为小图层且不存在于缓存及缩略图数据库中时,解析所需浏览的图片生成与所述需浏览的图片对应的小图层,并将所述生成的小图层存储至缓存中;
当需加载的图层不存在于缓存中,且需加载的图层不为小图层时,解析所需浏览的图片生成与所述需浏览的图片对应的中图层或原图层,然后将所述生成的中图层或原图层存储至缓存中。
4.如权利要求1至3所述的方法,其特征在于,所述小图层的尺寸为120×120个像素,中图层的尺寸为800×800个像素,原图层的尺寸为原图片的尺寸。
5.如权利要求1至3所述的方法,其特征在于,在对图片生成相应的图层时,当图片的尺寸小于800×800个像素时,不生成中图层,将原图层作为中图层和原图层。
6.一种图片浏览装置,其特征在于,所述装置包括:
图片浏览指令接收单元,用于接收用户输入的图片浏览指令;
图片浏览单元,用于读取并解析所述图片浏览指令指定的图片,依次加载所述图片浏览指令指定的图片对应生成的小图层及中图层/原图层;
文件夹扫描单元,用于扫描所述图片浏览指令指定的图片所在的文件夹,获取所述文件夹下所有图片的文件信息;
图片预加载单元,用于对所述图片浏览指令指定的图片周边的多张图片进行读取和解析,将所述多张图片分别对应生成小图层与中图层或原图层的组合/小图层,然后将所述生成的图层存储于缓存中;
翻页单元,用于接收到用户发出的翻页浏览图片的指令时,按照尺寸从小到大的顺序依次加载图层,所述加载的图层包括与翻页浏览指令指定的图片对应的小图层、中图层及原图层的其中一种或多种;
其中,所述翻页单元包括:
判断模块,用于判断用户发出的翻页浏览图片的指令是否是快速翻页浏览指令;
普通翻页浏览模块,用于加载当前正在浏览的图片对应的中图层,异步加载当前翻页趋势方向上多张图片对应的小图层,并加载当前翻页趋势方向上、与正在浏览的图片相邻的图片对应的中图层;
快速翻页浏览模块,用于根据当前翻页方向,加载当前浏览的图片周边的多张图片的小图层。
7.如权利要求6所述的装置,其特征在于,所述装置还包括:
缓存单元,用于缓存图片对应生成的小图层、中图层及原图层。
8.如权利要求6所述的装置,其特征在于,所述图片浏览单元包括:
图片解析模块,用于读取并解析图片浏览指令指定的图片;
图层加载模块,用于加载图层。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110047603.3A CN102651001B (zh) | 2011-02-28 | 2011-02-28 | 一种图片浏览的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110047603.3A CN102651001B (zh) | 2011-02-28 | 2011-02-28 | 一种图片浏览的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102651001A CN102651001A (zh) | 2012-08-29 |
CN102651001B true CN102651001B (zh) | 2016-07-27 |
Family
ID=46693009
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110047603.3A Active CN102651001B (zh) | 2011-02-28 | 2011-02-28 | 一种图片浏览的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102651001B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105163000A (zh) * | 2015-09-22 | 2015-12-16 | 许昌学院 | 一种自动翻页扫描复印的一体机 |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103678357B (zh) * | 2012-09-13 | 2018-12-11 | 腾讯科技(深圳)有限公司 | 一种移动终端获取图片缩略图的方法及装置 |
CN104903832B (zh) * | 2012-10-05 | 2020-09-25 | 触觉实验室股份有限公司 | 用于低等待时间用户输入处理和反馈的混合型系统和方法 |
CN103873918B (zh) * | 2012-12-14 | 2017-08-29 | 腾讯科技(深圳)有限公司 | 图片处理方法、装置及终端 |
CN103902575B (zh) * | 2012-12-27 | 2018-02-27 | 腾讯科技(深圳)有限公司 | 一种图片信息加载方法及相关装置 |
CN104093076B (zh) * | 2013-06-19 | 2018-04-10 | 腾讯科技(深圳)有限公司 | 翻页方法、装置及终端 |
CN104281439B (zh) * | 2013-07-02 | 2016-12-21 | 腾讯科技(深圳)有限公司 | 终端的标识显示方法和装置 |
CN104951317A (zh) * | 2014-03-26 | 2015-09-30 | 北京奇虎科技有限公司 | 图片加载装置及方法 |
CN104090709B (zh) * | 2014-06-11 | 2017-11-21 | 小米科技有限责任公司 | 图片切换方法和装置 |
CN104270678B (zh) * | 2014-09-05 | 2018-05-08 | 广州金山网络科技有限公司 | 一种略缩图显示方法、装置以及系统 |
CN105100868B (zh) * | 2015-04-22 | 2019-02-22 | 深圳市美贝壳科技有限公司 | 一种图片和缩略图列表显示的方法和装置 |
CN106257538B (zh) * | 2015-06-17 | 2021-03-30 | 深圳市腾讯计算机系统有限公司 | 缩略图下载方法和装置 |
CN105653135B (zh) * | 2015-12-31 | 2019-02-19 | 北京金山安全软件有限公司 | 一种图片的显示方法、装置及电子设备 |
CN105843517A (zh) * | 2016-03-14 | 2016-08-10 | 乐视移动智能信息技术(北京)有限公司 | 一种移动终端全图展示方法及系统 |
CN105824533B (zh) * | 2016-03-21 | 2019-06-18 | 青岛海信移动通信技术股份有限公司 | 一种图片加载方法、装置及终端 |
CN107070641A (zh) * | 2016-11-24 | 2017-08-18 | 比奥香港有限公司 | 一种图片展示方法及系统 |
CN106940722B (zh) * | 2017-03-16 | 2020-07-10 | 海信视像科技股份有限公司 | 一种图片显示方法及装置 |
CN109218799B (zh) * | 2017-07-01 | 2021-04-27 | 武汉斗鱼网络科技有限公司 | 安卓电视快速切换高清图的方法、存储介质、设备及系统 |
CN108173742B (zh) * | 2017-12-08 | 2021-08-24 | 腾讯科技(深圳)有限公司 | 一种图像数据处理方法、装置 |
CN108399090B (zh) * | 2018-02-08 | 2021-04-27 | Oppo广东移动通信有限公司 | 可见性刷新方法、装置、存储介质及智能终端 |
CN110609718A (zh) * | 2019-09-23 | 2019-12-24 | 广州虎牙科技有限公司 | 图片加载方法、装置、电子设备及可读存储介质 |
CN114546213B (zh) * | 2021-08-23 | 2023-04-28 | 成都统信软件技术有限公司 | 一种图片处理的方法、计算设备及可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100429658C (zh) * | 2006-09-07 | 2008-10-29 | 北京优纳科技有限公司 | 大容量快速图像浏览系统 |
CN101409799A (zh) * | 2008-11-12 | 2009-04-15 | 青岛海信电子产业控股股份有限公司 | 屏幕显示方法和装置 |
CN101465953A (zh) * | 2009-01-15 | 2009-06-24 | 深圳市茁壮网络技术有限公司 | 图片显示方法和数字电视图片浏览系统以及电视机顶盒 |
-
2011
- 2011-02-28 CN CN201110047603.3A patent/CN102651001B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100429658C (zh) * | 2006-09-07 | 2008-10-29 | 北京优纳科技有限公司 | 大容量快速图像浏览系统 |
CN101409799A (zh) * | 2008-11-12 | 2009-04-15 | 青岛海信电子产业控股股份有限公司 | 屏幕显示方法和装置 |
CN101465953A (zh) * | 2009-01-15 | 2009-06-24 | 深圳市茁壮网络技术有限公司 | 图片显示方法和数字电视图片浏览系统以及电视机顶盒 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105163000A (zh) * | 2015-09-22 | 2015-12-16 | 许昌学院 | 一种自动翻页扫描复印的一体机 |
CN105163000B (zh) * | 2015-09-22 | 2019-11-12 | 许昌学院 | 一种自动翻页扫描复印的一体机 |
Also Published As
Publication number | Publication date |
---|---|
CN102651001A (zh) | 2012-08-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102651001B (zh) | 一种图片浏览的方法及装置 | |
CN104699626B (zh) | 终端内存处理方法、装置及终端 | |
US20100060655A1 (en) | Mobile device and method for displaying thumbnails on the mobile device | |
JP6606300B1 (ja) | 表示画面、携帯端末及びモジュラ端末装置 | |
US20140189516A1 (en) | Video preview display method and terminal device | |
US9552186B2 (en) | Data processing method and electronic device | |
JP2014533013A (ja) | 携帯端末内のアプリケーションの画面のスクリーンショットをとるための方法及び装置 | |
WO2005083672A2 (en) | Display processor for a wireless device | |
US20070139445A1 (en) | Method and apparatus for displaying rotated images | |
US9449585B2 (en) | Systems and methods for compositing a display image from display planes using enhanced blending hardware | |
CN101441773B (zh) | 一种动画实现方法、系统及移动终端 | |
WO2023134128A1 (zh) | 一种视频压缩处理方法、装置及介质 | |
CN102866898B (zh) | 一种实现嵌入式设备上界面快速显示的方法 | |
US9754391B2 (en) | Webpage display method and apparatus | |
US9142053B2 (en) | Systems and methods for compositing a display image from display planes using enhanced bit-level block transfer hardware | |
CN112804410A (zh) | 多显示屏同步显示方法及装置、视频处理设备和存储介质 | |
CN101685371A (zh) | 电子装置及其减少操作响应时间的方法 | |
US20200334785A1 (en) | Methods and devices of picture processing and user interface display | |
CN103208128A (zh) | 显示图片的方法及装置 | |
CN107506119A (zh) | 一种图片显示方法、装置、设备和存储介质 | |
CN103544221A (zh) | 一种Android系统中视频缩略图的生成方法和系统 | |
EP4276590A1 (en) | Method for switching refresh rate, electronic device, and system | |
CN101996390B (zh) | 一种图像拷贝的方法和装置 | |
US20220108646A1 (en) | Adaptive display data transfer rate to reduce power consumption during partial frame composition | |
JP2013191998A (ja) | 画像処理装置、表示制御方法およびプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |