CN109213460A - 图像显示方法及装置 - Google Patents
图像显示方法及装置 Download PDFInfo
- Publication number
- CN109213460A CN109213460A CN201710545506.4A CN201710545506A CN109213460A CN 109213460 A CN109213460 A CN 109213460A CN 201710545506 A CN201710545506 A CN 201710545506A CN 109213460 A CN109213460 A CN 109213460A
- Authority
- CN
- China
- Prior art keywords
- viewing area
- image
- area
- target image
- memory
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/14—Digital output to display device ; Cooperation and interconnection of the display device with other functional units
- G06F3/1407—General aspects irrespective of display type, e.g. determination of decimal point position, display with fixed or driving decimal point, suppression of non-significant zeros
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Controls And Circuits For Display Device (AREA)
Abstract
本发明属于图像显示技术领域,具体涉及图像显示方法及装置。该图像显示方法包括:将目标图像划分为第一显示区和第一非显示区;判断出所述目标图像的第一显示区的区域;将所述目标图像的所述第一显示区的图像数据加载到内存中,且所述第一非显示区的图像数据不加载到内存中;根据在第一状态下加载到内存中的图像数据,将所述目标图像的第一显示区显示在所述屏幕上。该方法可以进行显示图像,且其可以通过动态加载、显示图像中的需要显示的区域并及时释放已经不再显示部分的内存的方式,达到高分辨率图像加载及显示时内存的可控,防止内存溢出,并能保证显示的图像质量保持原有不变的目的。
Description
技术领域
本发明属于图像显示技术领域,具体涉及图像显示方法及装置。
背景技术
为了允许多程序同时运行,Android系统为每个应用程序分配的堆大小设置了一个硬限制,如果应用程序已达到了所限制的容量并尝试分配更多内存时,系统将会抛出内存溢出错误。因此,在开发Android应用程序时,开发者们应当注意应用程序运行时所使用的内存容量,避免超出这个限制。
在Android应用程序中,内存溢出问题在图像资源的使用时表现得尤为突出和常见。因为图像数据往往占用比较多的内存,图像分辨率越大,其所占用的内存就越多。如果毫无顾忌地使用数量较多、分辨率较大的图像资源,应用程序很容易就会达到系统所限制的条件,导致内存溢出。
为了避免内存溢出,一般的做法是,限制运行时内存中图像资源的大小与数量,当加载分辨率比较大的图像资源时,通过控制下采样来读取图像数据,使得读取到内存中的图像分辨率比原图像的要小,从而达到使图像资源在应用程序中所占用的内存减小的目的。
上述方式由于其在加载大分辨率图像时,是通过图像的分辨率来达到减小图像所占用内存的,这使得原图像被加载到内存后,其部分图像信息将会丢失,原图像分辨率和加载到内存中的图像分辨率的比率越大,所丢失的信息就越多。该方式由于存在部分图像信息可能会被丢失的特性,所以,如果需要保持图像的原有信息的话,这种方式就不再适用了。但是如果为了不损失图像信息而原原本本地加载到内存中的话也是不可取的,因为,这样很容易使应用程序达到限制条件。
发明内容
为了解决上述问题,本发明提供了图像显示方法及装置,该方法可以进行显示图像,且其可以通过动态加载、显示图像中的需要显示的区域并及时释放已经不再显示部分的内存的方式,达到高分辨率图像加载及显示时内存的可控,防止内存溢出,并能保证显示的图像质量保持原有不变的目的。
本发明采用如下技术方案:
一方面,本发明实施例中提供一种图像显示方法,其包括以下步骤:
将目标图像划分为第一显示区和第一非显示区,所述第一显示区是所述目标图像在第一状态下需要在屏幕上显示的区域,所述第一非显示区域是所述目标图像在第一状态下的显示区之外的区域;
根据屏幕的大小和在第一状态下所述目标图像需要显示的部分,判断出所述目标图像的第一显示区的区域;
将所述目标图像的所述第一显示区的图像数据加载到内存中,且所述第一非显示区的图像数据不加载到内存中;
根据在第一状态下加载到内存中的图像数据,将所述目标图像的第一显示区显示在所述屏幕上。
本发明实施例的图像显示方法,可以将图像的显示区的图像数据加载到内存中,而非显示区的图像数据不加载到内存中,由此可以减小图像显示当前时刻所占的内存量,防止内存溢出;并且可以根据需要将图像的显示区的图像数据原原本本地加载到内存中,所以可以不损失图像的显示区的原有信息,即可以将显示在屏幕上的显示区原原本本地显示出来,可以使显示出来的图像的分辨率达到最大化。
而且,本发明实施例中还提供另一种图像显示方法,其包括以下步骤:
将目标图像划分为第一显示区、第一非显示区,并将所述第一非显示区划分为第一缓冲区、第一非缓冲区;所述第一显示区是所述目标图像在第一状态下需要在屏幕上显示的区域,所述第一非显示区是所述目标图像在第一状态下的显示区之外的区域;且所述第一缓冲区包括第一准显示区的部分或者全部区域;
根据屏幕的大小和在第一状态下所述目标图像需要显示的部分,判断出所述目标图像的第一显示区的区域;
将所述目标图像的第一显示区的图像数据和第一缓冲区的图像数据分别加载到内存中,且所述第一非缓冲区的图像数据不加载到内存中;
根据在第一状态下加载到内存中的图像数据,将所述目标图像的第一显示区显示在所述屏幕上。
本发明实施例的图像显示方法,非缓冲区的图像数据不加载到内存中,由此可以减小应用程序当前时刻所占的内存量;并且可以根据需要将图像的显示区的图像数据原原本本地加载到内存中,所以可以不损失图像的显示区的原有信息,即可以将显示在屏幕上的显示区原原本本地显示出来,可以使显示出来的图像的分辨率达到最大化。另外,将需要显示的目标图像分为可以显示的显示区、不能显示但能保存到内存的缓冲区和不能显示也不能保存到内存的非缓冲区,且所述缓冲区包括准显示区的部分或者全部区域,并将所述缓冲区的图像数据加载到内存中,即是将即将成为新显示区(第二显示区)的部分或者全部图像数据预加载到内存中,因此,当用户想要更改显示区的区域时,可以更快地绘制即将显示的新显示区,即更快地将屏幕上的图像更换为需要显示的新显示区,提高了用户体验。
本发明实施例也提供一种图像显示装置,其包括:
第一划分模块,用于将目标图像划分为第一显示区和第一非显示区,所述第一显示区是所述目标图像在第一状态下需要在屏幕上显示的区域,所述第一非显示区域是所述目标图像在第一状态下的显示区之外的区域;
第一判断模块,用于根据屏幕的大小和在第一状态下所述目标图像需要显示的部分,判断出所述目标图像的第一显示区的区域;
第一加载模块,用于将所述目标图像的所述第一显示区的图像数据加载到内存中,且所述第一非显示区的图像数据不加载到内存中;
第一显示模块,用于根据在第一状态下加载到内存中的图像数据,将所述目标图像的第一显示区显示在所述屏幕上。
另外,本发明实施例还提供另一种图像显示装置,其包括:
第二划分模块,用于将目标图像划分为第一显示区、第一非显示区,并将所述第一非显示区划分为第一缓冲区、第一非缓冲区;所述第一显示区是所述目标图像在第一状态下需要在屏幕上显示的区域,所述第一非显示区是所述目标图像在第一状态下的显示区之外的区域;且所述第一缓冲区包括第一准显示区的部分或者全部区域;
第二判断模块,用于根据屏幕的大小和在第一状态下所述目标图像需要显示的部分,判断出所述目标图像的第一显示区的区域;
第二加载模块,用于将所述目标图像的第一显示区的图像数据和第一缓冲区的图像数据分别加载到内存中,且所述第一非缓冲区的图像数据不加载到内存中;
第二显示模块,用于根据在第一状态下加载到内存中的图像数据,将所述目标图像的第一显示区显示在所述屏幕上。
附图说明
图1为本发明一优选实施例中的图像显示方法的流程图。
图2为本发明利用图1所示的图像显示方法将图像划分后的图像示意图。
图3为本发明另一优选实施例中的图像显示方法的流程图。
图4为本发明利用图3所示的图像显示方法将图像划分后的图像示意图。
图5为本发明一优选实施例中的图像显示装置的结构图。
图6为本发明另一优选实施例中的图像显示装置的结构图。
图7为本发明另一优选实施例中的图像显示装置的结构图。
图8为本发明另一优选实施例中的图像显示装置的结构图。
具体实施方式
为了更加清楚地了解本发明的技术方案,下面结合附图对本发明进行详细介绍。本发明的实施例具有示例性的作用,本领域技术人员在本发明实施例基础上做出的无实质性的改进,都应属于本发明的保护范围。
如图1所示的图像显示方法,其包括以下步骤:
S101:将目标图像划分为第一显示区和第一非显示区,所述第一显示区是所述目标图像在第一状态下需要在屏幕上显示的区域,所述第一非显示区域是所述目标图像在第一状态下的显示区之外的区域。
所述第一非显示区,是在第一状态下不需要在屏幕上显示的区域。
将目标图像划分为第一显示区和第一非显示区,通常是进行虚拟划分,是为了方便后续将第一显示区的图像数据加载到内存中,而第一非显示区的图像数据不用加载到内存中。
S102:根据屏幕的大小和在第一状态下所述目标图像需要显示的部分,判断出所述目标图像的第一显示区的区域。
在第一状态下所述目标图像需要显示的部分,可以是通过用户选择确定的,也可以是系统预先设置好的。其中,第一显示区的区域大小和屏幕的大小相同。
S103:将所述目标图像的所述第一显示区的图像数据加载到内存中,且所述第一非显示区的图像数据不加载到内存中。
现有技术中是将所述目标图像的全部图像数据都加载得到内存中,并通过降低相关分辨率而减少一些图像数据,这样就把非显示区的图像数据也加载到了内存中,而真正需要显示的部分却降低了相关分辨率,这样以来,造成内存占用量较大且图像显示质量也较差。本发明实施例中,通过将第一显示区的图像数据加载到内存中,且所述第一非显示区的图像数据不加载到内存中,可以减少占据的内存,由此不需要减少第一显示区的相关图像数据,因此,也可以提高需要显示的图像的分辨率等。
S104:根据在第一状态下加载到内存中的图像数据,将所述目标图像的第一显示区显示在所述屏幕上。
在第一状态下加载到内存中的图像数据是第一显示区的图像数据,因此,可以将所述目标图像的第一显示区显示在所述屏幕上。
本发明实施例的显示区和非显示区不是一成不变的,当响应用户的操作或者系统预先设置好的动态时需要显示图像的“非显示区”时,则“非显示区”会变成显示区,而之前状态的“显示区”又可能成为非显示区,即显示区与非显示区是动态变化的。本发明实施例中的第一状态就是当前状态、显示区就是第一显示区、非显示区就是第一非显示区,只是为了方便对不同状态下显示区、非显示区是不同的区域的描述,将本发明实施例的当前状态的显示区称为第一显示区,当前状态的非显示区称为第一非显示区。本发明实施例中的显示区的大小与相应的屏幕大小相同,且是所述目标图像当前状态需要在屏幕上显示的区域。
本发明实施例的图像显示方法,可以将图像的显示区的图像数据加载到内存中,而非显示区的图像数据不加载到内存中,由此可以减小图像显示当前时刻所占的内存量,防止内存溢出;并且可以根据需要将图像的显示区的图像数据原原本本地加载到内存中,所以可以不损失图像的显示区的原有信息,即可以将显示在屏幕上的显示区原原本本地显示出来,可以使显示出来的图像的分辨率达到最大化。
当然,当图像的分辨率非常大且所能使用的内存相对比较小时,也可以根据需要丢失显示区中的部分图像数据,但是这样丢失相比于现有技术将目标图像的全部区域的图像数据都加载到内存中相比,其丢失的“量”可以降低很多,即利用本发明实施例的图像显示方法仍然比现有技术的图像显示方法显示出来的图像质量高。
如图2所示的图像,其被虚拟划分为第一显示区和第一非显示区,其中的第一显示区和屏幕大小相同,且加载图像数据到内存中时,只需将图中第一显示区的图像数据加载到内存中即可,不需要将图中第一非显示区的图像数据加载到内存中;由此可以减小图像显示当前时刻所占的内存量;并且可以根据需要将图像的显示区的图像数据原原本本地加载到内存中,所以可以不损失图像的显示区的原有信息。
基于图1所示的图像显示方法,其还包括:
S105:监测所述目标图像在第二状态下是否将第一显示区改变成第二显示区。
这里的“第一状态”、“第二状态”可以理解为不同时刻下的状态。监测所述目标图像在第二状态下是否将第一显示区改变成第二显示区,可以是android系统提供的“监听屏幕触摸事件”,即是监测的是用户操作行为,也可以是系统预先设置好的在不同状态下显示目标图像的不同区域,则此时的监测即是判断出在第二状态下系统是否设置了将第一显示区改变成第二显示区。
S106:如果所述目标图像在第二状态下需要将第一显示区改变成第二显示区,则根据屏幕的大小和在第二状态下所述目标图像需要显示的部分,判断出所述目标图像的第二显示区的区域,且所述目标图像的第二显示区之外的区域为第二非显示区。
所述第二显示区是在第二状态下所述目标图像上需要在屏幕上显示的区域,而第二非显示是在第二状态下所述目标图像上不需要显示在屏幕上的区域。
在第二状态下所述目标图像需要显示的区域,可以是通过用户选择确定的,也可以是系统预先设置好的。其中,第二显示区的区域大小和屏幕的大小相同。
S107:将所述目标图像的所述第二显示区中的图像数据加载到内存中,且所述第二非显示区的图像数据不加载到内存中。
所述第二非显示区的图像数据不加载到内存中,可以减少图像数据所占据的内存的量。
S108:将所述第一显示区的图像数据从内存中释放掉。
所述S107和S108的先后顺可以调换,但是S107在先,可以减少显示区切换期间造成屏幕空白现象的出现,并降低由此给用户带来的体验度较差的几率。
将所述第一显示区的图像数据从内存中释放掉,可以减少内存占有量,也可以避免影响后续对第二显示区的显示。
S109:根据在第二状态下加载到内存中的图像数据,将所述目标图像的所述第二显示区显示在所述屏幕上。
本发明实施例中的显示区是在显示了第一显示区之后,从第一显示区改变成了第二显示区,且所述第一显示区、第二显示区中的“第一”、“第二”,只是为了将不同状态下将不同区域的“显示区”进行的区别性描述。本发明实施例中的第一显示区、第二显示区,同一时刻,不可能都是真正的“显示区”。所述第一显示区与所述第二显示区,在所述目标图像上是不同的区域,且当前状态只能有一个真正的“显示区”显示在屏幕上,而本发明实施例的第二状态就是当前状态,且第一状态与第二状态是处于不同时刻的两个状态。如果是第一显示区显示在屏幕上,且若第二显示区与第一显示区无重叠部分,则当前状态第二显示区就是非显示区;若第二显示区与第一显示区有重叠部分,则当前状态第二显示区与第一显示区的重叠部分就是显示区,没有重叠的部分就是非显示区。如果是第二显示区显示在屏幕上,且若第一显示区与第二显示区无重叠部分,则当前状态第一显示区就是非显示区;若第一显示区与第二显示区有重叠部分,则当前状态第一显示区与第二显示区的重叠部分就是显示区,没有重叠的部分就是非显示区。
本发明实施例的图像显示方法,通过监测所述目标图像的显示区是否发生改变,以至于后续可以及时更新图像的显示区;通过将第二显示区中的图像数据加载到内存中,并将之前的第一显示区的图像数据从内存中释放掉,能够达到减小应用程序当前时刻的内存量并将内存控制在一定的范围内的目的,进而实现了内存的可控性、可管理性,同时又保证了当前显示区的图像数据的完整性。
如图3所示的图像显示方法,其包括以下步骤:
S201:将目标图像划分为第一显示区、第一非显示区,并将所述第一非显示区划分为第一缓冲区、第一非缓冲区;所述第一显示区是所述目标图像在第一状态下需要在屏幕上显示的区域,所述第一非显示区是所述目标图像在第一状态下的显示区之外的区域;且所述第一缓冲区包括第一准显示区的部分或者全部区域。
所述第一准显示区在第一状态下是非显示区,但是在第二状态下,显示区的区域需要发生改变时会成为第二显示区的区域。
所述缓冲区可以是围绕在所述显示区周围的部分或者全部区域,具体大小,可以根据内存的大小、屏幕的大小及目标图像的分辨率等因素决定。
S202:根据屏幕的大小和在第一状态下所述目标图像需要显示的部分,判断出所述目标图像的第一显示区的区域。
在第一状态下所述目标图像需要显示的部分,可以是通过用户选择确定的,也可以是系统预先设置好的。其中,第一显示区的区域大小和屏幕的大小相同。
S203:将所述目标图像的第一显示区的图像数据和第一缓冲区的图像数据分别加载到内存中,且所述第一非缓冲区的图像数据不加载到内存中。
将所述目标图像的第一显示区的图像数据加载到内存中,可以方便在第一状态下显示所述的第一显示区;将所述目标图像的第一缓冲区的图像数据加载到内存中,且因为第一缓冲区包括第一准显示区的部分或者全部区域,所以当有第一状态变成第二状态时,只需要重新加载第一准显示区的部分区域的图像数据或者不需要加载,可以更方便、更快速地在第二状态下显示第一准显示区。
S204:根据在第一状态下加载到内存中的图像数据,将所述目标图像的第一显示区显示在所述屏幕上。
本发明实施例的显示区和非显示区不是一成不变的,当响应用户的操作需要显示图像的“非显示区”时,则“非显示区”会变成显示区,而之前状态的“显示区”又可能成为非显示区,及显示区与非显示区是动态变化的,且通常缓冲区、非缓冲区也会随着显示区的变化而发生变化。本发明实施例的当前状态就是第一状态、显示区就是第一显示区、非显示区就是第一非显示区、缓冲区就是第一缓冲区、非缓冲区就是第一非缓冲区,只是为了方便对不同状态下显示区、非显示区、缓冲区、非缓冲区是不同的区域的描述,将本发明实施例的当前状态的显示区称为第一显示区、当前状态的非显示区称为第一非显示区、当前状态的缓冲区成为第一缓冲区、当前状态的第一非缓冲区称为第一非缓冲区。本发明实施例中的显示区的大小与相应的屏幕大小相同,且是所述目标图像当前状态需要在屏幕上显示的区域。
本发明实施例的图像显示方法,非缓冲区的图像数据不加载到内存中,由此可以减小应用程序当前时刻所占的内存量;并且可以根据需要将图像的显示区的图像数据原原本本地加载到内存中,所以可以不损失图像的显示区的原有信息,即可以将显示在屏幕上的显示区原原本本地显示出来,可以使显示出来的图像的分辨率达到最大化。
当然,当图像的分辨率非常大且所能使用的内存相对比较小时,也可以根据需要丢失显示区中的部分图像数据,但是这样丢失相比于现有技术将目标图像的全部区域的图像数据都加载到内存中相比,其丢失的“量”可以降低很多,即利用本发明实施例的图像显示方法仍然比现有技术的图像显示方法显示出来的图像质量高。
另外,将需要显示的目标图像分为可以显示的显示区、不能显示但能保存到内存的缓冲区和不能显示也不能保存到内存的非缓冲区,且所述缓冲区包括准显示区的部分或者全部区域,并将所述缓冲区的图像数据加载到内存中,即是将即将成为新显示区(第二显示区)的部分或者全部图像数据预加载到内存中,因此,当用户想要更改显示区的区域时,可以更快地绘制即将显示的新显示区,即更快地将屏幕上的图像更换为需要显示的新显示区,提高了用户体验。
基于图3所示的图像显示方法,其中,所述将所述目标图像的第一显示区的图像数据和第一缓冲区的图像数据分别加载到内存中之前,还包括:
将所述目标图像划分为若干个图像块,且所述第一显示区的大小为x、所述第一缓冲区的大小为y,每个图像块的大小为k,则k小于x、k小于y,且k大于0;
所述将所述目标图像的第一显示区的图像数据和第一缓冲区的图像数据分别加载到内存中,是将所述目标图像的第一显示区的图像数据和第一缓冲区的图像数据分别以图像块为单位加载到内存中。
本发明实施例中的图像块的形状为矩形形状。具体大小可以根据实际需要决定,且影响图像块的大小的因素可以由相关应用程序分配到的堆大小、设备屏幕的分辨、设备性能、用户体验期望、需求等众多因素,开发者可以根据实际设备环境和具体需求权衡各项因素来决定图像块的大小。具体可以为:如果设备屏幕的宽度为dW和为高度dH,则图像块的宽度w为dW/10、高度h为dH/10,或者,图像块的宽度w为dW/15、高度h为dH/20等。
其中,如果第一缓冲区与第一非缓冲区有重叠的图像块,则通常可以按照第一缓冲区的图像块处理。
本发明实施例的图像显示方法,将所述显示区的图像数据和缓冲区的图像数据分别以图像块为单位加载到内存中,而不是直接将显示区的全部图像数据直接加载到内存中、将缓冲区的全部图像数据直接加载到内存中,这样可以在图像的分辨率较大时提高加载速度。
基于图3所示的图像显示方法,其还包括:
S205:监测所述目标图像在第二状态下是否将第一显示区改变成第二显示区。
这里的“第一状态”、“第二状态”可以理解为不同时刻下的状态。监测所述目标图像在第二状态下是否将第一显示区改变成第二显示区,可以是android系统提供的“监听屏幕触摸事件”,即是监测的是用户操作行为,也可以是系统预先设置好的在不同状态下显示目标图像的不同区域,则此时的监测即是判断出在第二状态下系统是否设置了将第一显示区改变成第二显示区。
S206:如果所述目标图像在第二状态下需要将第一显示区改变成第二显示区,则根据屏幕的大小和在第二状态下所述目标图像需要显示的部分,判断出所述目标图像的第二显示区的区域,且所述目标图像的第二显示区之外的区域为第二非显示区,所述第二非显示区包括第二缓冲区和第二非缓冲区;其中,若第二缓冲区的大小为z,则k小于z。
所述第二显示区是在第二状态下所述目标图像上需要在屏幕上显示的区域,而第二非显示是在第二状态下所述目标图像上不需要显示在屏幕上的区域。在第二状态下所述目标图像需要显示的区域,可以是通过用户选择确定的,也可以是系统预先设置好的。其中,第二显示区的区域大小和屏幕的大小相同。
所述第二缓冲区包括第二准显示区的部分或者全部区域。所述第二准显示区在第二状态下是非显示区,但是在第三状态下,显示区的区域需要发生改变时会成为第三显示区的区域。
S207:判断所述目标图像的第二显示区中的所有图像数据是否已全部加载到内存中。
当第一缓冲区包括第一准显示区的部分区域,且第一准显示区的其余部分与第一显示区无重叠时,即是在加载第一缓冲区的图像数据到内存中时,第二显示区的部分图像数据被加载到了内存中;当第一缓冲区包括第一准显示区的全部区域时,即是在加载第一缓冲区的图像数据到内存中时,第二显示区的全部图像数据被加载到了内存中;当第一缓冲区包括第一准显示区的部分区域,且第一准显示区的其余部分与第一显示区重叠时,即是将第一显示区的图像数据和第一缓冲区的图像数据分别加载到内存中时,第二显示区的全部图像数据被加载到了内存中。
所述判断所述目标图像的第二显示区中的所有图像数据是否已全部加载到内存中,可以是判断与第二显示区相交的图像块的自身状态,这个自身状态就是是否有加载图像数据到内存中,这个状态在图像块内的图像数据加载到内存后被置为“是”,未加载或者图像数据被释放后被置为“否”。所以,需遍历第二显示区内的图像块并判断其状态即可。在从第一显示区到第二显示区后,第二显示区内的图像块的图像数据可能在第一显示区和第一缓冲区里被加载了。
S208:如果所述目标图像的第二显示区中的所有图像数据未全部加载到内存中,则将所述目标图像的第二显示区中的未加载到内存中的图像数据以图像块为单位加载到内存中,且所述第二非显示区的且与所述第二显示区无重叠的图像块的图像数据不加载到内存中。
与所述第二非显示区和所述第二显示区重叠的图像块,通常是按照第二显示区的图像块处理,即是将该重叠的图像块的图像数据加载到内存中。
S209:将所述目标图像的第一显示区中的且与该目标图像的第二显示区、第二缓冲区均无重叠的图像块的图像数据以图像块为单位从内存中释放掉。
所述目标图像的第一显示区中的且与该目标图像的第二显示区或第二缓冲区有重叠的图像块的图像数据还保存到内存中。
S210:根据在第二状态下加载到内存中的图像数据,将所述目标图像的第二显示区显示在所述屏幕上。
本发明实施例中的显示区是在显示了第一显示区之后,从第一显示区改变成了第二显示区,且所述第一显示区、第二显示区中的“第一”、“第二”,只是为了将不同状态下将不同区域的“显示区”进行的区别性描述。本发明实施例中的第一显示区、第二显示区,同一时刻,不可能都是真正的“显示区”。所述第一显示区与所述第二显示区,在所述目标图像上是不同的区域,且当前状态只能有一个真正的“显示区”显示在屏幕上,而本发明实施例的第二状态就是当前状态,且第一状态与第二状态是处于不同时刻的两个状态。如果是第一显示区显示在屏幕上,且若第二显示区与第一显示区无重叠部分,则当前状态第二显示区就是非显示区;若第二显示区与第一显示区有重叠部分,则当前状态第二显示区与第一显示区的重叠部分就是显示区,没有重叠的部分就是非显示区。如果是第二显示区显示在屏幕上,且若第一显示区与第二显示区无重叠部分,则当前状态第一显示区就是非显示区;若第一显示区与第二显示区有重叠部分,则当前状态第一显示区与第二显示区的重叠部分就是显示区,没有重叠的部分就是非显示区。
本发明实施例的图像显示方法,在显示区发生改变时(由第一显示区变为第二显示区时),由于块与块之间没有任何交集且图像是以块为单位加载到内存和从内存中释放掉的,所以如果显示区域改变前后有重叠,可以避免图像出现被重复加载的情况,进而避免了由于图像被重复加载而造成的内存浪费的现象,提高了内存的利用效率,也避免了由于重叠的区域被重复加载使得程序的执行效率降低的情况发生。
进一步地,上述图像显示方法,还可以包括以下步骤:
判断所述目标图像的第二缓冲区中的所有块的图像数据是否已全部加载到内存中;
如果所述目标图像的第二缓冲区中的所有图像数据未全部加载到内存中,则将所述目标图像的第二缓冲区中的未加载到内存中的图像数据加载到内存中;
将所述目标图像的第一缓冲区中的且与该目标图像的第二显示区、第二缓冲区均无重叠的图像数据以图像块为单位从内存中释放掉。
如图4所示,其中1为设备屏幕,2为第一状态下的第一显示区,3为第一状态的第一缓冲区,4为第一状态下的第一非缓冲区,5为图像块,6为第一准显示区。该实施例中,设备屏幕1宽度为dW和为高度为dH,第一显示区2也是宽度为dW和为高度为dH,第一缓冲区3是围绕在第一显示区2的周围的区域,且图像块的宽度w为dW/4、高度h为dH/6,第一显示区包括24个图像块,第一缓冲区包括是围绕在第一显示区2的周围的24个图像块。
本发明实施例中,第一准显示区6与第一显示区2、第一缓冲区3均有重叠的区域,即是当在第二状态下需要显示第一准显示区6(第二状态下为第二显示区)时,只需以图像块为单位加载不与第一显示区2、第一缓冲区3均有重叠的区域的图像数据到内存中即可,因此,可以避免重叠区域被重复加载的情况。
如图5所示的图像显示装置,其包括:
第一划分模块,用于将目标图像划分为第一显示区和第一非显示区,所述第一显示区是所述目标图像在第一状态下需要在屏幕上显示的区域,所述第一非显示区域是所述目标图像在第一状态下的显示区之外的区域;
第一判断模块,用于根据屏幕的大小和在第一状态下所述目标图像需要显示的部分,判断出所述目标图像的第一显示区的区域;
第一加载模块,用于将所述目标图像的所述第一显示区的图像数据加载到内存中,且所述第一非显示区的图像数据不加载到内存中;
第一显示模块,用于根据在第一状态下加载到内存中的图像数据,将所述目标图像的第一显示区显示在所述屏幕上。
本发明实施例的图像显示装置可用于实现图1所示的图像显示方法,其可以将图像的显示区的图像数据加载到内存中,而非显示区的图像数据不加载到内存中,由此可以减小图像显示当前时刻所占的内存量;并且可以根据需要将图像的显示区的图像数据原原本本地加载到内存中,所以可以不损失图像的显示区的原有信息,即可以将显示在屏幕上的显示区原原本本地显示出来,可以使显示出来的图像的分辨率达到最大化。
基于图5所示的图像显示装置,如图6所示,其还包括:
第一监测模块,用于监测所述目标图像在第二状态下是否将第一显示区改变成第二显示区;
所述第一判断模块,还用于如果所述目标图像在第二状态下需要将第一显示区改变成第二显示区,则根据屏幕的大小和在第二状态下所述目标图像需要显示的部分,判断出所述目标图像的第二显示区的区域,且所述目标图像的第二显示区之外的区域为第二非显示区;
所述第一加载模块,还用于将所述目标图像的所述第二显示区中的图像数据加载到内存中,且所述第二非显示区的图像数据不加载到内存中;
第一释放模块,用于将所述第一显示区的图像数据从内存中释放掉;
所述第一显示模块,还用于根据在第二状态下加载到内存中的图像数据,将所述目标图像的所述第二显示区显示在所述屏幕上。
如图7所示的图像显示装置,其包括:
第二划分模块,用于将目标图像划分为第一显示区、第一非显示区,并将所述第一非显示区划分为第一缓冲区、第一非缓冲区;所述第一显示区是所述目标图像在第一状态下需要在屏幕上显示的区域,所述第一非显示区是所述目标图像在第一状态下的显示区之外的区域;且所述第一缓冲区包括第一准显示区的部分或者全部区域;
第二判断模块,用于根据屏幕的大小和在第一状态下所述目标图像需要显示的部分,判断出所述目标图像的第一显示区的区域;
第二加载模块,用于将所述目标图像的第一显示区的图像数据和第一缓冲区的图像数据分别加载到内存中,且所述第一非缓冲区的图像数据不加载到内存中;
第二显示模块,用于根据在第一状态下加载到内存中的图像数据,将所述目标图像的第一显示区显示在所述屏幕上。
本发明实施例的图像显示装置,可用于实现图3所示的图像显示方法,其中,非缓冲区的图像数据不加载到内存中,由此可以减小应用程序当前时刻所占的内存量;并且可以根据需要将图像的显示区的图像数据原原本本地加载到内存中,所以可以不损失图像的显示区的原有信息,即可以将显示在屏幕上的显示区原原本本地显示出来,可以使显示出来的图像的分辨率达到最大化。
基于图7所示的图像显示装置,其中:
所述第二加载模块包括划分单元,用于将所述目标图像的第一显示区的图像数据和第一缓冲区的图像数据分别加载到内存中之前,将所述目标图像划分为若干个图像块,且所述第一显示区的大小为x、所述第一缓冲区的大小为y,每个图像块的大小为k,则k小于x、k小于y,且k大于0;
且所述第二加载模块,将所述目标图像的第一显示区的图像数据和第一缓冲区的图像数据分别加载到内存中,是将所述目标图像的第一显示区的图像数据和第一缓冲区的图像数据分别以图像块为单位加载到内存中。
基于图7所示的图像显示装置,如图8所示,其还包括:
第二监测模块,用于监测所述目标图像在第二状态下是否将第一显示区改变成第二显示区;
所述第二判断模块,还用于如果所述目标图像在第二状态下需要将第一显示区改变成第二显示区,则根据屏幕的大小和在第二状态下所述目标图像需要显示的部分,判断出所述目标图像的第二显示区的区域,且所述目标图像的第二显示区之外的区域为第二非显示区,所述第二非显示区包括第二缓冲区和第二非缓冲区;其中,若第二缓冲区的大小为z,则k小于z;
第三判断模块,用于判断所述目标图像的第二显示区中的所有图像数据是否已全部加载到内存中;
所述第二加载模块,还用于如果所述目标图像的第二显示区中的所有图像数据未全部加载到内存中,则将所述目标图像的第二显示区中的未加载到内存中的图像数据以图像块为单位加载到内存中,且所述第二非显示区的且与所述第二显示区无重叠的图像块的图像数据不加载到内存中;
第二释放模块,用于将所述目标图像的第一显示区中的且与该目标图像的第二显示区、第二缓冲区均无重叠的图像块的图像数据以图像块为单位从内存中释放掉;
所述第二显示模块,还用于根据在第二状态下加载到内存中的图像数据,将所述目标图像的第二显示区显示在所述屏幕上。
本发明实施例的图像显示装置,在显示区发生改变时(由第一显示区变为第二显示区时),由于块与块之间没有任何交集且图像是以块为单位加载到内存和从内存中释放掉的,所以如果显示区域改变前后有重叠,可以避免图像出现被重复加载的情况,进而避免了由于图像被重复加载而造成的内存浪费的现象,提高了内存的利用效率,也避免了由于重叠的区域被重复加载使得程序的执行效率降低的情况发生。
进一步地,图8所示的图像显示装置中:
所述第三判断模块,还用于判断所述目标图像的第二缓冲区中的所有块的图像数据是否已全部加载到内存中;
所述第二加载模块,还用于如果所述目标图像的第二缓冲区中的所有图像数据未全部加载到内存中,则将所述目标图像的第二缓冲区中的未加载到内存中的图像数据加载到内存中;
所述第二释放模块,还用于将所述目标图像的第一缓冲区中的且与该目标图像的第二显示区、第二缓冲区均无重叠的图像数据以图像块为单位从内存中释放掉。
以上所述,仅为本发明的实施例,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (10)
1.一种图像显示方法,其特征在于,包括以下步骤:
将目标图像划分为第一显示区和第一非显示区,所述第一显示区是所述目标图像在第一状态下需要在屏幕上显示的区域,所述第一非显示区域是所述目标图像在第一状态下的显示区之外的区域;
根据屏幕的大小和在第一状态下所述目标图像需要显示的部分,判断出所述目标图像的第一显示区的区域;
将所述目标图像的所述第一显示区的图像数据加载到内存中,且所述第一非显示区的图像数据不加载到内存中;
根据在第一状态下加载到内存中的图像数据,将所述目标图像的第一显示区显示在所述屏幕上。
2.根据权利要求1所述的图像显示方法,其特征在于,还包括:
监测所述目标图像在第二状态下是否将第一显示区改变成第二显示区;
如果所述目标图像在第二状态下需要将第一显示区改变成第二显示区,则根据屏幕的大小和在第二状态下所述目标图像需要显示的部分,判断出所述目标图像的第二显示区的区域,且所述目标图像的第二显示区之外的区域为第二非显示区;
将所述目标图像的所述第二显示区中的图像数据加载到内存中,且所述第二非显示区的图像数据不加载到内存中;
将所述第一显示区的图像数据从内存中释放掉;
根据在第二状态下加载到内存中的图像数据,将所述目标图像的所述第二显示区显示在所述屏幕上。
3.一种图像显示方法,其特征在于,包括以下步骤:
将目标图像划分为第一显示区、第一非显示区,并将所述第一非显示区划分为第一缓冲区、第一非缓冲区;所述第一显示区是所述目标图像在第一状态下需要在屏幕上显示的区域,所述第一非显示区是所述目标图像在第一状态下的显示区之外的区域;且所述第一缓冲区包括第一准显示区的部分或者全部区域;
根据屏幕的大小和在第一状态下所述目标图像需要显示的部分,判断出所述目标图像的第一显示区的区域;
将所述目标图像的第一显示区的图像数据和第一缓冲区的图像数据分别加载到内存中,且所述第一非缓冲区的图像数据不加载到内存中;
根据在第一状态下加载到内存中的图像数据,将所述目标图像的第一显示区显示在所述屏幕上。
4.根据权利要求3所述的图像显示方法,其特征在于,所述将所述目标图像的第一显示区的图像数据和第一缓冲区的图像数据分别加载到内存中之前,还包括:
将所述目标图像划分为若干个图像块,且所述第一显示区的大小为x、所述第一缓冲区的大小为y,每个图像块的大小为k,则k小于x、k小于y,且k大于0;
所述将所述目标图像的第一显示区的图像数据和第一缓冲区的图像数据分别加载到内存中,是将所述目标图像的第一显示区的图像数据和第一缓冲区的图像数据分别以图像块为单位加载到内存中。
5.根据权利要求4所述的图像显示方法,其特征在于,还包括:
监测所述目标图像在第二状态下是否将第一显示区改变成第二显示区;
如果所述目标图像在第二状态下需要将第一显示区改变成第二显示区,则根据屏幕的大小和在第二状态下所述目标图像需要显示的部分,判断出所述目标图像的第二显示区的区域,且所述目标图像的第二显示区之外的区域为第二非显示区,所述第二非显示区包括第二缓冲区和第二非缓冲区;其中,若第二缓冲区的大小为z,则k小于z;
判断所述目标图像的第二显示区中的所有图像数据是否已全部加载到内存中;
如果所述目标图像的第二显示区中的所有图像数据未全部加载到内存中,则将所述目标图像的第二显示区中的未加载到内存中的图像数据以图像块为单位加载到内存中,且所述第二非显示区的且与所述第二显示区无重叠的图像块的图像数据不加载到内存中;
将所述目标图像的第一显示区中的且与该目标图像的第二显示区、第二缓冲区均无重叠的图像块的图像数据以图像块为单位从内存中释放掉;
根据在第二状态下加载到内存中的图像数据,将所述目标图像的第二显示区显示在所述屏幕上。
6.一种图像显示装置,其特征在于,包括:
第一划分模块,用于将目标图像划分为第一显示区和第一非显示区,所述第一显示区是所述目标图像在第一状态下需要在屏幕上显示的区域,所述第一非显示区域是所述目标图像在第一状态下的显示区之外的区域;
第一判断模块,用于根据屏幕的大小和在第一状态下所述目标图像需要显示的部分,判断出所述目标图像的第一显示区的区域;
第一加载模块,用于将所述目标图像的所述第一显示区的图像数据加载到内存中,且所述第一非显示区的图像数据不加载到内存中;
第一显示模块,用于根据在第一状态下加载到内存中的图像数据,将所述目标图像的第一显示区显示在所述屏幕上。
7.根据权利要求6所述的图像显示装置,其特征在于,还包括:
第一监测模块,用于监测所述目标图像在第二状态下是否将第一显示区改变成第二显示区;
所述第一判断模块,还用于如果所述目标图像在第二状态下需要将第一显示区改变成第二显示区,则根据屏幕的大小和在第二状态下所述目标图像需要显示的部分,判断出所述目标图像的第二显示区的区域,且所述目标图像的第二显示区之外的区域为第二非显示区;
所述第一加载模块,还用于将所述目标图像的所述第二显示区中的图像数据加载到内存中,且所述第二非显示区的图像数据不加载到内存中;
第一释放模块,用于将所述第一显示区的图像数据从内存中释放掉;
所述第一显示模块,还用于根据在第二状态下加载到内存中的图像数据,将所述目标图像的所述第二显示区显示在所述屏幕上。
8.一种图像显示装置,其特征在于,包括:
第二划分模块,用于将目标图像划分为第一显示区、第一非显示区,并将所述第一非显示区划分为第一缓冲区、第一非缓冲区;所述第一显示区是所述目标图像在第一状态下需要在屏幕上显示的区域,所述第一非显示区是所述目标图像在第一状态下的显示区之外的区域;且所述第一缓冲区包括第一准显示区的部分或者全部区域;
第二判断模块,用于根据屏幕的大小和在第一状态下所述目标图像需要显示的部分,判断出所述目标图像的第一显示区的区域;
第二加载模块,用于将所述目标图像的第一显示区的图像数据和第一缓冲区的图像数据分别加载到内存中,且所述第一非缓冲区的图像数据不加载到内存中;
第二显示模块,用于根据在第一状态下加载到内存中的图像数据,将所述目标图像的第一显示区显示在所述屏幕上。
9.根据权利要求8所述的图像显示装置,其特征在于,
所述第二加载模块包括划分单元,用于将所述目标图像的第一显示区的图像数据和第一缓冲区的图像数据分别加载到内存中之前,将所述目标图像划分为若干个图像块,且所述第一显示区的大小为x、所述第一缓冲区的大小为y,每个图像块的大小为k,则k小于x、k小于y,且k大于0;
且所述第二加载模块,将所述目标图像的第一显示区的图像数据和第一缓冲区的图像数据分别加载到内存中,是将所述目标图像的第一显示区的图像数据和第一缓冲区的图像数据分别以图像块为单位加载到内存中。
10.根据权利要求9所述的图像显示装置,其特征在于,还包括:
第二监测模块,用于监测所述目标图像在第二状态下是否将第一显示区改变成第二显示区;
所述第二判断模块,还用于如果所述目标图像在第二状态下需要将第一显示区改变成第二显示区,则根据屏幕的大小和在第二状态下所述目标图像需要显示的部分,判断出所述目标图像的第二显示区的区域,且所述目标图像的第二显示区之外的区域为第二非显示区,所述第二非显示区包括第二缓冲区和第二非缓冲区;其中,若第二缓冲区的大小为z,则k小于z;
第三判断模块,用于判断所述目标图像的第二显示区中的所有图像数据是否已全部加载到内存中;
所述第二加载模块,还用于如果所述目标图像的第二显示区中的所有图像数据未全部加载到内存中,则将所述目标图像的第二显示区中的未加载到内存中的图像数据以图像块为单位加载到内存中,且所述第二非显示区的且与所述第二显示区无重叠的图像块的图像数据不加载到内存中;
第二释放模块,用于将所述目标图像的第一显示区中的且与该目标图像的第二显示区、第二缓冲区均无重叠的图像块的图像数据以图像块为单位从内存中释放掉;
所述第二显示模块,还用于根据在第二状态下加载到内存中的图像数据,将所述目标图像的第二显示区显示在所述屏幕上。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710545506.4A CN109213460A (zh) | 2017-07-06 | 2017-07-06 | 图像显示方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710545506.4A CN109213460A (zh) | 2017-07-06 | 2017-07-06 | 图像显示方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109213460A true CN109213460A (zh) | 2019-01-15 |
Family
ID=64992919
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710545506.4A Pending CN109213460A (zh) | 2017-07-06 | 2017-07-06 | 图像显示方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109213460A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101778226A (zh) * | 2010-01-25 | 2010-07-14 | 深圳市同洲电子股份有限公司 | 一种高清图像防锯齿方法、装置及数字电视接收终端 |
CN103034467A (zh) * | 2012-12-06 | 2013-04-10 | 北京小米科技有限责任公司 | 图像显示方法、装置及移动终端 |
CN105787002A (zh) * | 2016-02-22 | 2016-07-20 | 上海新炬网络技术有限公司 | 一种基于业务的地图多层级显示方法 |
CN106502613A (zh) * | 2016-10-25 | 2017-03-15 | 武汉斗鱼网络科技有限公司 | 一种加载图片的方法及装置 |
-
2017
- 2017-07-06 CN CN201710545506.4A patent/CN109213460A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101778226A (zh) * | 2010-01-25 | 2010-07-14 | 深圳市同洲电子股份有限公司 | 一种高清图像防锯齿方法、装置及数字电视接收终端 |
CN103034467A (zh) * | 2012-12-06 | 2013-04-10 | 北京小米科技有限责任公司 | 图像显示方法、装置及移动终端 |
CN105787002A (zh) * | 2016-02-22 | 2016-07-20 | 上海新炬网络技术有限公司 | 一种基于业务的地图多层级显示方法 |
CN106502613A (zh) * | 2016-10-25 | 2017-03-15 | 武汉斗鱼网络科技有限公司 | 一种加载图片的方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106096030B (zh) | 对浏览器运行进行优化的方法和装置 | |
CN109947569B (zh) | 绑定核心的方法、装置、终端及存储介质 | |
CN103544207B (zh) | 一种图片加载显示的方法与系统 | |
WO2020038163A1 (zh) | 图标的显示方法、装置、终端及存储介质 | |
CN108984264A (zh) | 虚拟gpu的实现方法、装置及系统 | |
US8756524B2 (en) | Management of device settings via a plurality of interfaces | |
CN105512251B (zh) | 一种页面缓存方法和装置 | |
EP2518631A1 (en) | Picture loading method and terminal | |
US10416994B2 (en) | Control method | |
CN104063125B (zh) | 一种桌面图标管理方法和装置 | |
CN107463627A (zh) | 一种图片加载方法及终端 | |
CN105868420A (zh) | 一种网络资源加载方式配置方法及装置 | |
CN112825042A (zh) | 资源管理方法和装置、电子设备及存储介质 | |
CN103823690A (zh) | 一种在线图片加载方法和系统 | |
CN110609718A (zh) | 图片加载方法、装置、电子设备及可读存储介质 | |
CN104793945A (zh) | 防止内存溢出的大批量图片显示方法及其装置 | |
CN103218307A (zh) | 内存管理系统和内存管理方法 | |
TW200817911A (en) | CPU mode-based cache allocation for image data | |
US11790824B2 (en) | Display method, display device, and display apparatus | |
CN106060899A (zh) | 一种流量控制方法和装置 | |
CN107608588B (zh) | 显示层、显示方法、显示系统和操作系统 | |
CN103677883A (zh) | 显示停靠栏图标的方法及装置 | |
CN107783633A (zh) | 一种管理应用程序的方法、终端及计算机可读存储介质 | |
CN109213460A (zh) | 图像显示方法及装置 | |
US20160104462A1 (en) | Frame drawing method and associated mobile electronic device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190115 |
|
RJ01 | Rejection of invention patent application after publication |