一种用于移动互联网设备的超大图像加载显示方法
技术领域
本发明涉及一种超大图像在移动互联网设备上进行加载和显示的方法,特别是涉及一种适合于数字切片等超大图像在移动设备上加载显示的方法。
背景技术
以苹果公司的iPhone、iPad为代表的智能手机、平板电脑等移动互联网设备由于其强大的网络连接功能和卓越的用户体验在众多行业中得到了日益广泛的重视和应用。例如,在远程病理学领域,医学专家通过这些移动设备可以随时随地查看数字切片,进行远程的交流、诊断等工作。
移动互联网设备出于便携和功耗等方面的考虑,普遍处理器性能不高,屏幕尺寸不大,内存容量不大,闪存(磁盘)容量有限。而数字切片一类的超大图像一般尺寸都在十几亿像素以上,需要数百兆字节的存储容量。所以,这样大的图像数据在移动设备上加载和显示时就存在以下一些问题:
一是,通过网络传输全部图像数据需要很长的时间;
二是,图像尺寸太大,不能在移动互联网设备的屏幕上完全显示;
三是,图像数据量太大,无法完全加载到移动互联网设备的内存中进行处理;
四是,移动互联网设备的闪存(磁盘)容量十分有限,无法在本地存储很多的图像数据。
发明内容
本发明的目的在于克服现有技术之不足,提供一种用于移动互联网设备的超大图像加载显示方法,通过多分辨率存储、并行读取、缓存数据、图像补全,重复使用下载任务等技术,实现了快速流畅的加载显示过程,并有效地减小了移动互联网设备资源的消耗,达到了较好的用户体验效果。
本发明解决其技术问题所采用的技术方案是:一种用于移动互联网设备的超大图像加载显示方法,包括如下步骤:
A.在远程网络服务器上存储指定超大图像的不同分辨率下的分块图像数据,并提供能够通过网络读取对应图像的分块图像数据的应用程序编程接口,使得连接于网络的移动互联网设备能够通过该应用程序编程接口连接该远程网络服务器从中读取对应图像的分块图像数据;
B.在移动互联网设备需要显示指定超大图像的一个区域时,由移动互联网设备根据显示区域的尺寸和图像存储的分块尺寸自动将该区域分成多个小块,然后,移动互联网设备启动多个读取任务,开始并行读取这些小块的图像数据;
C.当任意一个读取任务完成时,移动互联网设备就先将该读取任务所取得的图像数据绘制到移动互联网设备的屏幕上;待全部读取任务完成后,则该区域的图像显示结束。
C.当任意一个读取任务完成时,移动互联网设备就先将该读取任务所取得的图像数据绘制到移动互联网设备的屏幕上;待全部读取任务完成后,则该区域的图像显示结束。
所述的步骤A中,在远程网络服务器上存储指定超大图像的不同分辨率下的分块图像数据,是将指定超大图像按照不同分辨率分级进行图像数据的读取和存储,其中每一上级分辨率图像的分辨率设定为相邻的下级分辨率图像的分辨率的若干倍,每一上级分辨率图像的分块设定为相邻的下级分辨率图像的分块的若干倍;连接于网络的移动互联网设备能够通过所述应用程序编程接口连接所述远程网络服务器从中读取对应图像的任一级分辨率图像的任一分块的图像数据。
所述的步骤B中,移动互联网设备的每一个读取任务分别包括:
移动互联网设备首先判断本次读取任务所需要读取的对应小块的图像数据是否已经下载到移动互联网设备的闪存或磁盘中,如果该小块图像已经下载到设备的闪存或磁盘中,则直接取得该图像数据,本次读取任务结束;
否则,就指定一个网络下载任务,开始通过所述应用程序编程接口连接所述远程网络服务器从中读取对应图像区域的对应小块图像的图像数据,由远程网络服务器异步下载该小块图像;然后,移动互联网设备从闪存或磁盘中取得该小块图像对应位置的较低分辨率的图像数据来补全,任务结束。
进一步的,对应于任意一个读取任务中启动了网络下载任务,其还包括:
移动互联网设备在对应的小块图像数据的网络下载任务完成后,则将该对应的小块图像数据存入设备的闪存或磁盘中,并且通知程序去刷新相应的屏幕区域,然后将该网络下载任务标记为空闲,以备再次使用;
移动互联网设备在将下载的该小块图像数据存入设备的闪存或磁盘时,检查该小块图像数据所相邻位置的图像数据是否都已经下载完毕;如果是的话,则根据预置的条件去删除对应位置的低分辨率图像。
所述的步骤B中,移动互联网设备的每一个读取任务分别包括如下步骤:
B1.计算待读取的图像块坐标标识,包括属于那一级分辨率和在该级分辨率中的位置,以此作为该图像块的标识;
B2.根据图像块的坐标标识在移动互联网设备的闪存或磁盘中查找,如果找到,则从移动互联网设备的闪存或磁盘中读取该图像块的图像数据,然后转步骤B11,否则,继续下一步骤;
B3.判断该图像块是否可以由移动互联网设备的闪存或磁盘中的高一级分辨率图像组合而成,如果是,则从移动互联网设备的闪存或磁盘中读取该图像块的高一级分辨率图像的图像数据来组合该图像块,然后转步骤B11,否则,继续下一步骤;
B4.判断该图像块的图像数据是否已经在下载过程中,如果是,转步骤B8,否则,继续下一步骤;
B5.判断是否有空闲的网络下载任务,如果是,转步骤B7,否则,继续下一步骤;
B6.创建新的网络下载任务,开始下载该图像块的图像数据;并转步骤B8;
B7.使用空闲的网络下载任务,开始下载该图像块的图像数据;
B8.判断该图像块在低级分辨率的对应图像是否可以从移动互联网设备的闪存或磁盘中读取,如果是,则转步骤B10,否则,继续下一步骤;
B9.没有缓存过该图像块的任何相关图像,用预先设置的缺省数据代替,然后转步骤B11;
B10.从低一级分辨率的图像中读取相应位置的图像的图像数据;
B11.读取任务结束。
本发明的有益效果是,由于采用了先在远程网络服务器上存储指定超大图像的不同分辨率下的分块图像数据,并提供对应的应用程序编程接口,使移动互联网设备可以读取对应图像的分块图像数据;然后,在移动互联网设备需要显示指定超大图像的一个区域时,则由移动互联网设备启动多个读取任务,开始并行读取这些小块的图像数据;当任意一个读取任务完成时,移动互联网设备就先将该读取任务所取得的图像数据绘制到移动互联网设备的屏幕上;待全部读取任务完成后,则该区域的图像显示结束;在读取任务过程中,是从远程网络服务器异步下载图像数据,并存入设备的闪存中,而在下载过程中,设备会从闪存中取得较低分辨率的图像数据来补全。这种通过多分辨率存储、并行读取、缓存数据、图像补全,重复使用下载任务的方式,来实现移动互联网设备的超大图像加载显示,实现了快速流畅的加载显示过程,并有效地减小了移动互联网设备资源的消耗,达到了较好的用户体验效果。在本发明的方法中,并行读取任务可以充分发挥设备性能,加快图像的显示和下载;当图像数据还未下载到设备时,使用对应的低分辨率图像补全显示,使得显示过程中没有空白区域,更加快速流畅;可以用下载的高分辨率图像组合来替代相应低分辨率图像,以节省设备存储空间;网络下载任务重复使用,可以减少系统资源的颠簸和消耗。所以本方法非常适合于在移动互联网设备上适用。特别是适合于数字切片等超大图像在移动设备上加载显示。
以下结合附图及实施例对本发明作进一步详细说明;但本发明的一种用于移动互联网设备的超大图像加载显示方法不局限于实施例。
附图说明
图1是超大图像在远程网络服务器的图像数据结构示意图;
图2是显示区域绘制过程示意图;
图3是图像读取任务流程图;
图4是图像异步网络下载任务完成后的处理流程图。
具体实施方式
实施例,本发明的一种用于移动互联网设备的超大图像加载显示方法,其特征在于:包括如下步骤:
A.在远程网络服务器上存储指定超大图像的不同分辨率下的分块图像数据,并提供能够通过网络读取对应图像的分块图像数据的应用程序编程接口,使得连接于网络的移动互联网设备能够通过该应用程序编程接口连接该远程网络服务器从中读取对应图像的分块图像数据;
B.在移动互联网设备需要显示指定超大图像的一个区域时,由移动互联网设备根据显示区域的尺寸和图像存储的分块尺寸自动将该区域分成多个小块,然后,移动互联网设备启动多个读取任务,开始并行读取这些小块的图像数据;
C.当任意一个读取任务完成时,移动互联网设备就先将该读取任务所取得的图像数据绘制到移动互联网设备的屏幕上;待全部读取任务完成后,则该区域的图像显示结束。
所述的步骤A中,在远程网络服务器上存储指定超大图像的不同分辨率下的分块图像数据,是将指定超大图像按照不同分辨率分级进行图像数据的读取和存储,其中每一上级分辨率图像的分辨率设定为相邻的下级分辨率图像的分辨率的若干倍,每一上级分辨率图像的分块设定为相邻的下级分辨率图像的分块的若干倍;连接于网络的移动互联网设备能够通过所述应用程序编程接口连接所述远程网络服务器从中读取对应图像的任一级分辨率图像的任一分块的图像数据。
如图1所示,该应用程序编程接口可以让外部应用程序按图示结构来读取图像数据。每个超大图像可以由多层不同分辨率数据组成,每一层表示一个级别的分辨率,比如最底层(由上层向下层方向为分辨率增高)为100%分辨率,以上依次为50%、25%、12.5%……。图1示出了三层结构,最上层分辨率25%,图像块为一块,中间层分辨率50%,图像块为四块,最底层分辨率100%,图像块为十六块,每层图像所代表的实际范围是相同的,只是细节程度不同。每层图像分成若干小块(如每块256×256像素),外部应用程序可以读取其中任意一层的任意一块数据。该图只是一个图像数据的读取结构的示意,与图像数据实际在服务器上存储的格式无关。
如图2所示,当移动互联网设备需要显示指定超大图像的一个区域时,在步骤B中,移动互联网设备启动多个读取任务,开始并行读取这些小块的图像数据;在步骤C中,当任意一个读取任务完成时,移动互联网设备就先将该读取任务所取得的图像数据绘制到移动互联网设备的屏幕上;待全部读取任务完成后,则该区域的图像显示结束。
所述的步骤B中,移动互联网设备的每一个读取任务分别包括:
移动互联网设备首先判断本次读取任务所需要读取的对应小块的图像数据是否已经下载到移动互联网设备的闪存或磁盘中,如果该小块图像已经下载到设备的闪存或磁盘中,则直接取得该图像数据,本次读取任务结束;
否则,就指定一个网络下载任务,开始通过所述应用程序编程接口连接所述远程网络服务器从中读取对应图像区域的对应小块图像的图像数据,由远程网络服务器异步下载该小块图像;然后,移动互联网设备从闪存或磁盘中取得该小块图像对应位置的较低分辨率的图像数据来补全,任务结束。
进一步的,对应于任意一个读取任务中启动了网络下载任务,其还包括:
移动互联网设备在对应的小块图像数据的网络下载任务完成后,则将该对应的小块图像数据存入设备的闪存或磁盘中,并且通知程序去刷新相应的屏幕区域,然后将该网络下载任务标记为空闲,以备再次使用;
移动互联网设备在将下载的该小块图像数据存入设备的闪存或磁盘时,检查该小块图像数据所相邻位置的图像数据是否都已经下载完毕;如果是的话,则根据预置的条件去删除对应位置的低分辨率图像。
如图4所示,当网络异步下载任务在稍后的某一时刻完成时,其进一步处理的具体步骤如下:
第一步,将下载的图像数据存入移动互联网设备设备的闪存或磁盘中;
第二步,检查是否相邻位置的同分辨率图像都已经下载;如果都已经下载(如2×2相邻的图像块)到设备中,则检查已经使用的设备的闪存(磁盘)情况,如果设备计算速度比较快,而缓存又超过了预订的范围则删除其对应位置的低分辨率图像,以节省存储空间;
第三步,通知设备需要刷新相应的屏幕显示区域;
第四步,将该网络下载任务缓存到设备内存中,以待今后下载其他图像块时复用。
如图3所示;所述的步骤B中,移动互联网设备的每一个读取任务分别包括如下步骤:
B1.计算待读取的图像块坐标标识,包括属于那一级分辨率和在该级分辨率中的位置,以此作为该图像块的标识;
B2.根据图像块的坐标标识在移动互联网设备的闪存或磁盘中查找,如果找到,则从移动互联网设备的闪存或磁盘中读取该图像块的图像数据,然后转步骤B11,否则,继续下一步骤;
B3.判断该图像块是否可以由移动互联网设备的闪存或磁盘中的高一级分辨率图像组合而成,如果是,则从移动互联网设备的闪存或磁盘中读取该图像块的高一级分辨率图像的图像数据来组合该图像块,然后转步骤B11,否则,继续下一步骤;
B4.判断该图像块的图像数据是否已经在下载过程中,如果是,转步骤B8,否则,继续下一步骤;
B5.判断是否有空闲的网络下载任务,如果是,转步骤B7,否则,继续下一步骤;
B6.创建新的网络下载任务,开始下载该图像块的图像数据;并转步骤B8;
B7.使用空闲的网络下载任务,开始下载该图像块的图像数据;
B8.判断该图像块在低级分辨率的对应图像是否可以从移动互联网设备的闪存或磁盘中读取,如果是,则转步骤B10,否则,继续下一步骤;
B9.没有缓存过该图像块的任何相关图像,用预先设置的缺省数据代替,然后转步骤B11;
B10.从低一级分辨率的图像中读取相应位置的图像的图像数据;
B11.读取任务结束。
上述实施例仅用来进一步说明本发明的一种用于移动互联网设备的超大图像加载显示方法,但本发明并不局限于实施例,凡是依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均落入本发明技术方案的保护范围内。