CN114969409A - 一种图像显示方法、装置及可读介质 - Google Patents
一种图像显示方法、装置及可读介质 Download PDFInfo
- Publication number
- CN114969409A CN114969409A CN202210202859.5A CN202210202859A CN114969409A CN 114969409 A CN114969409 A CN 114969409A CN 202210202859 A CN202210202859 A CN 202210202859A CN 114969409 A CN114969409 A CN 114969409A
- Authority
- CN
- China
- Prior art keywords
- image
- block
- visible area
- thumbnail
- realblocksize
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/50—Information retrieval; Database structures therefor; File system structures therefor of still image data
- G06F16/54—Browsing; Visualisation therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/50—Information retrieval; Database structures therefor; File system structures therefor of still image data
- G06F16/51—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/50—Information retrieval; Database structures therefor; File system structures therefor of still image data
- G06F16/58—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
- G06F16/5866—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using information manually generated, e.g. tags, keywords, comments, manually generated location and time information
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Library & Information Science (AREA)
- Software Systems (AREA)
- Image Processing (AREA)
Abstract
本发明公开了一种图像显示方法、装置及可读介质,通过图像缓存获取缩略图,并采用MD5算法对图像的文件路径进行加密,生成密文,将缩略图的名称命名为密文的名称以建立图像与缩略图之间的映射关系。在图像显示过程中,当图像需要分块加载,先获取图像对应的缩略图并进行显示,再将图像进行分块,根据可视区域的宽度和高度以及图像显示的缩放倍数计算得到分块的宽高,并根据图像中分块图像所在的行号和列号建立每个分块图像所在的索引位置,根据分块的宽高与可视区域的坐标位置得到可视区域内显示的分块图像的索引位置数据;实时加载可视区域内显示的分块图像,将分块图像在可视区域内进行显示。不仅提高图像加载速度,还支持亿像素超高分辨率显示。
Description
技术领域
本发明涉及图像处理技术领域和屏幕显示领域,具体涉及一种图像显示方法、装置及可读介质。
背景技术
随着图像采集技术的不断发展,图像的分辨率也不断增加,对于显示图像的设备也就要求越来越高。特别是一些低配置的电子显示设备如果要显示一张高质量的图像时,需要花费更多的时间来解析图像并显示,也就是说使用者从打开一张图像到显示需要比较久的时间,因此用户体验较差。
目前,电子显示设备在图像显示时,可视区域通常小于图像的整个范围,大部分常用的做法是拷贝图像到***时,将图像进行拆分,拆分成不同尺寸大小的分块图像并保存到***磁盘中,当显示图像时,在磁盘中搜索显示可视区域对应的分块图像文件即可。这种做法虽然可以加快图像的显示,但是保存的分块图像会占用比较大的内存空间,一张10兆的图像,保存的分块图像大小可能达到上百兆,因此对于小磁盘空间***或者含有海量图片***来说并不是非常适合。
通常采用图像分块加载的方式进行高质量图像的显示,常用的分块方法是图像金字塔设计方式,即每层金字塔分块都采用相同的大小。第一层为分块的宽和高都是原图的1/2,第二层为分块的宽和高都是原图的1/4,以此类推,后一层分块的宽高为前一层分块宽高的1/2。对大分辨率(亿级分辨率)的图像来说,前面几层的分块图像分辨率也是非常的大,也同样会造成无法显示和加载慢问题。
发明内容
针对上述提到的技术问题。本申请的实施例的目的在于提出了一种图像显示方法、装置及可读介质,来解决图像加载显示时间长问题,提供了图像并行处理显示方法及***,提高了图像加载速度,可支持图像的亿像素超高分辨率显示。
第一方面,本申请的实施例提供了一种图像显示方法,包括以下步骤:
S1,获取图像,基于图像得到缩略图,并采用MD5算法对图像的文件路径进行加密,生成密文,将缩略图的名称命名为密文的名称;
S2,在图像显示过程中,响应于图像需要分块加载,根据图像的文件路径获取图像对应的缩略图并进行显示;
S3,将图像进行分块,得到多个分块图像,根据可视区域的宽度和高度以及图像显示的缩放倍数计算得到分块的宽高,并根据图像中分块图像所在的行号和列号建立每个分块图像所在的索引位置,根据分块的宽高与可视区域的坐标位置得到可视区域内显示的分块图像的索引位置数据;
S4,基于可视区域内显示的分块图像的索引位置数据实时加载可视区域内显示的分块图像,并将可视区域内显示的分块图像在可视区域内进行显示。
在具体的实施例中,分块的宽高的计算公式如下:
其中,realBlockSize为分块的宽高,heightPixels为可视区域的高度,widthPixels为可视区域的宽度,scale为图像显示的缩放倍数,getNearScale(scale)表示对图像显示的缩放倍数进行2的幂次方处理。
在具体的实施例中,步骤S3中的根据分块的宽高与可视区域的坐标位置得到可视区域内显示的分块图像的索引位置数据,具体包括:
以图像的左上角为坐标原点,获取可视区域在图像中的坐标位置,其中,(x0,y0)为可视区域左上角在图像中的坐标位置,
(x1,y1)为可视区域右上角在图像中的坐标位置,
(x2,y2)为可视区域左下角在图像中的坐标位置,
(x3,y3)为可视区域右下角在图像中的坐标位置,
计算可视区域内显示的分块图像的索引位置,公式如下:
其中,startRow为可视区域左上角显示图像像素点所在分块图像的行号,
其中,endRow为可视区域左下角显示图像像素点所在分块图像的行号,
其中,startCol为可视区域左上角显示图像像素点所在分块图像的列号,
其中,endCol为可视区域右上角显示图像像素点所在分块图像的列号,
可视区域内显示的分块图像的索引位置数据为:
在具体的实施例中,步骤S4中具体包括:
S41,根据可视区域内显示的分块图像的索引位置数据通过多线程方式同时加载对应的分块图像并保存在RAM中;
S42,将加载完后的可视区域内显示的分块图像绘制在可视区域中。
在具体的实施例中,步骤S41具体包括:分别根据可视区域内显示的分块图像的索引位置(r,c)获取分块图像的左上角、右上角、左下角和右下角在图像中的坐标位置:
左上角(realBlockSize*c,realBlockSize*r),
右上角(min(realBlockSize*(c+1),IW),realBlockSize*r),
左下角(realBlockSize*c,min(realBlockSize*(r+1),IH)),
右下角(min(realBlockSize*(c+1),IW),min(realBlockSize*(r+1),IH)),
其中,公式min(a,b)表示为取a和b的最小值,IW为图像的宽度,IH为图像的高度;
基于Android***的图片区域解码方式进行加载,解码方法为BitmapRegionDecoder.decodeRegion(clipImageRect,decodingOptions),其中clipImageRect为分块图像的左上角、右上角、左下角和右下角在图像中的坐标位置的封装,decodingOptions为解析设置的参数类,包含缩放比例。
在具体的实施例中,步骤S42具体包括:
以(x0,y0)为坐标原点,计算出可视区域内显示的分块图像的索引位置为(r,c)的分块图像在可视区域的坐标位置:
左上角(realBlockSize*c-x0,realBlockSize*r-y0),
右上角(min(realBlockSize*(c+1),IW)-x0,realBlockSize*r-y0),
左下角(realBlockSize*c-x0,min(realBlockSize*(r+1),IH)-y0),
右下角(min(realBlockSize*(c+1),IW)-x0,min(realBlockSize*(r+1),IH)-y0),其中,公式min(a,b)表示为取a和b的最小值,IW为图像的宽度,IH为图像的高度,
最终将分块图像根据分块图像在可视区域的坐标位置,绘制到可视区域。
在具体的实施例中,步骤S1中的获取图像,基于图像得到缩略图,具体包括:
解析图像,获取图像的分辨率;
响应于图像的分辨率大于预设分辨率阈值,确定压缩比,基于压缩比对图像进行压缩,得到缩略图,预设分辨率阈值为可视区域的分辨率。
在具体的实施例中,步骤S2中的响应于图像需要分块加载,获取图像对应的缩略图并进行显示,具体包括:
判断图像是否需要分块加载,若是,则根据图像的文件路径计算出对应的密文,在缩略图保存路径下查找与密文的名称对应的缩略图并进行显示,否则,直接显示图像。
在具体的实施例中,步骤S1还包括:当保存的缩略图的额数量达到设定的数量时,将进行使用频次最少的图像的缩略图进行删除。
第二方面,本申请的实施例提供了一种图像显示装置,包括:
缩略图生成模块,被配置为获取图像,基于图像得到缩略图,并采用MD5算法对图像的文件路径进行加密,生成密文,将缩略图的名称命名为密文的名称;
缩略图显示模块,被配置为在图像显示过程中,响应于图像需要分块加载,根据图像的文件路径获取图像对应的缩略图并进行显示;
分块模块,被配置为将图像进行分块,得到多个分块图像,根据可视区域的宽度和高度以及图像显示的缩放倍数计算得到分块的宽高,并根据图像中分块图像所在的行号和列号建立每个分块图像所在的索引位置,根据分块的宽高与可视区域的坐标位置得到可视区域内显示的分块图像的索引位置数据;
分块显示模块,被配置为基于可视区域内显示的分块图像的索引位置数据实时加载可视区域内显示的分块图像,并将可视区域内显示的分块图像在可视区域内进行显示。
第三方面,本申请的实施例提供了一种电子设备,包括一个或多个处理器;存储装置,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现如第一方面中任一实现方式描述的方法。
第四方面,本申请的实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面中任一实现方式描述的方法。
相比于现有技术,本发明具有以下有益效果:
(1)本发明解决电子显示设备对于高分辨率图像加载时间长,显示慢,或者无法显示问题,提供了图像并行处理显示方法及装置,提高了图像加载速度,可支持图像的亿像素超高分辨率显示。
(2)本发明在图像需要分块加载的同时可以先显示缩略图,在分块加载完成后将分块图像缓存在RAM中,并进行显示,减少图像显示的运算量。
(3)本发明通过MD5算法建立图像的文件路径与缩略图之间的映射关系,可直接通过原图的文件路径进行MD5值计算,找到对应的缩略图,效率更高。
(4)本发明通过可视区域的宽度和高度以及图像显示的缩放倍数确定分块的宽高,根据分块的宽高对图像进行分块,适用于大分辨率(亿级分辨率)的图像的显示,避免造成无法显示和加载慢等问题。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请的一个实施例可以应用于其中的示例性装置架构图;
图2为本发明的实施例的图像显示方法的流程示意图;
图3为本发明的实施例的图像显示方法的图像分块加载显示的流程示意图;
图4为本发明的实施例的图像显示方法的分块图像的示意图;
图5为本发明的实施例的图像显示装置的示意图;
图6是适于用来实现本申请实施例的电子设备的计算机装置的结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
图1示出了可以应用本申请实施例的图像显示方法或图像显示装置的示例性装置架构100。
如图1所示,装置架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种应用,例如数据处理类应用、文件处理类应用等。
终端设备101、102、103可以是硬件,也可以是软件。当终端设备101、102、103为硬件时,可以是各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。当终端设备101、102、103为软件时,可以安装在上述所列举的电子设备中。其可以实现成多个软件或软件模块(例如用来提供分布式服务的软件或软件模块),也可以实现成单个软件或软件模块。在此不做具体限定。
服务器105可以是提供各种服务的服务器,例如对终端设备101、102、103上传的文件或数据进行处理的后台数据处理服务器。后台数据处理服务器可以对获取的文件或数据进行处理,生成处理结果。
需要说明的是,本申请实施例所提供的图像显示方法可以由服务器105执行,也可以由终端设备101、102、103执行,相应地,图像显示装置可以设置于服务器105中,也可以设置于终端设备101、102、103中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。在所处理的数据不需要从远程获取的情况下,上述装置架构可以不包括网络,而只需服务器或终端设备。
图2示出了本申请的实施例提供的一种图像显示方法,包括以下步骤:
S1,获取图像,基于图像得到缩略图,并采用MD5算法对图像的文件路径进行加密,生成密文,将缩略图的名称命名为密文的名称。
在具体的实施例中,电子显示设备在图像显示时,可视区域通常小于图像整个范围,因此当图像的尺寸大于可视区域时,可以将图像进行分辨率压缩处理,生成一个适当的小分辨率JPEG格式图像文件并进行缩略图的缓存,在加载图像的时候能够优先显示一张缩略图,让使用者能够快速看到图像的内容。步骤S1中的获取图像,基于图像得到缩略图,具体包括:
解析图像,获取图像的分辨率;
响应于图像的分辨率大于预设分辨率阈值,确定压缩比,基于压缩比对图像进行压缩,得到缩略图,预设分辨率阈值为可视区域的分辨率。
具体地,拷贝图像到***后,解析图像获取图像的宽度IW和高度IH,设定压缩后的缩略图的宽度SW和高度SH分别为可视区域的宽度和高度,根据如下公式判断图像是否需要进行压缩处理:
其中,当dw>1或者dh>1,说明图像的宽度或高度比可视区域的宽度或高度大,需要对图像进行压缩,当dx为false时,说明可视区域可以完全显示图像,则拷贝直接结束,无需再做处理直接进行显示,否则需要进行压缩分辨率,生成缩略图。
采用以下公式计算压缩比:
d=dw>dh?dw:dh,其中d为压缩比。
压缩分辨率需要保持压缩后的图像宽高比与原图的宽高比一致,否则图像会变形,当dw>dh时,图像宽度的压缩比更大,取dw为压缩比,否则取dh为压缩比。根据图像像素点的排列为矩阵式排列,进行压缩处理时,通常压缩比需要为2的幂次方,故还需对d进行接近2的幂次方处理:d=getNearScale(d),具体的实现公式如下:
具体地,当压缩比d取dw或dh,循环递进x,并判断d与2x以及2x+1之间的大小,当d大于2x且小于或等于2x+1,则令d=2x+1。
基于Android操作***,使用BitmapFactory.decodeFile()方法进行图像压缩,并保存。使用BitmapFactory.decodeFile()方法进行图像压缩的代码如下:
在具体的实施例中,采用MD5算法对图像的文件路径进行MD5加密生成一个密文,并将缩略图的名称命名为密文的名称。缩略图的名称以图像的文件路径MD5加密密文命名,可以防止不同路径下相同文件名图像的缩略图的名称重叠,实现缩略图的名称唯一。并且不需要使用数据库或者其他文件存储等方式保存缩略图与图像的映射关系,可直接通过图像的文件路径进行MD5值计算,找到对应的缩略图,效率更高。
在具体的实施例中,对于低存储设备,由于存储空间有限,如果设备中存在海量的图像时,图像的缩略图也会随之增多,从而需要占用更多的存储空间。本发明也针对此现象进行了优化,当保存的缩略图数量达到设定的数量时,将近期最少使用的图像缩略图进行删除。本发明采用Java中的LruCache类进行扩展管理,创建一个固定数量的队列,打开一张图像时,将该图像对象放入到队列的队尾,当历史打开的图像数量达到队列的长度后,将队列头部的图像移出队列,并删除对应的缩略图。
S2,在图像显示过程中,响应于图像需要分块加载,根据图像的文件路径获取图像对应的缩略图并进行显示。
在具体的实施例中,如图3所示,由于图像的分辨率一般大于显示设备的分辨率,所以只需要分块加载显示设备能够查看到的区域数据块即可,减少图像显示的运算量。步骤S2中的响应于图像需要分块加载,获取图像对应的缩略图并进行显示,具体包括:
判断图像是否需要分块加载,若是,则根据图像的文件路径计算出对应的密文,在缩略图保存路径下查找与密文的名称对应的缩略图并进行显示,否则,直接显示图像。
具体地,当显示图像时,先判断是否需要分块加载图像,如果不需要,则直接显示图像,否则对图像的文件路径计算MD5密文后,在缩略图保存路径下查找是否存在该密文对应名称的缩略图,如果有,则先将缩略图进行显示,如果没有,则重复步骤S1-S2。
S3,将图像进行分块,得到多个分块图像,根据可视区域的宽度和高度以及图像显示的缩放倍数计算得到分块的宽高,并根据图像中分块图像所在的行号和列号建立每个分块图像所在的索引位置,根据分块的宽高与可视区域的坐标位置得到可视区域内显示的分块图像的索引位置数据。
在具体的实施例中,分块的宽高由可视区域的宽度和高度以及图像显示的缩放倍数决定。分块的宽高的计算公式如下:
其中,realBlockSize为分块的宽高,heightPixels为可视区域的高度,widthPixels为可视区域的宽度,scale为图像显示的缩放倍数,getNearScale(scale)表示对图像显示的缩放倍数进行2的幂次方处理。此处的幂次方处理方式与压缩比的幂次方处理方式一样。realBlockSize的大小最大为即保证了分块图像的最大宽高不会大于可视区域的宽高,也就保证了分块图像装载到Android***的Bitmap中不会超过其限制。具体的分块图像示意图如图4所示。以分块的宽高为单位从图像的左上角为原点对图像进行分块,除了右边的一列与最下边的一行的分块,其他每个分块的宽度和高度相同,均设为分块的宽高,由于图像并不一定能被均分,因此最右边的一列与最下边的一行的高度和宽度可能不等于分块的宽高。每个分块图像所在的索引位置根据分块所在的行号row和列号col建立,每个索引位置对应每个分块编号(row,col),在可视区域内,只能显示图像上的部分分块图像,并且满足可视区域的分辨率要求。
在具体的实施例中,步骤S3中的根据分块的宽高与可视区域的坐标位置得到可视区域内显示的分块图像的索引位置数据,具体包括:
以图像的左上角为坐标原点,获取可视区域在图像中的坐标位置,其中,(x0,y0)为可视区域左上角在图像中的坐标位置,
(x1,y1)为可视区域右上角在图像中的坐标位置,
(x2,y2)为可视区域左下角在图像中的坐标位置,
(x3,y3)为可视区域右下角在图像中的坐标位置。
对图像分块后,计算可视区域内显示的分块图像的索引位置数据,可视区域内显示的分块图像的索引位置数据包括可视区域内的分块数以及分块编号,公式如下:
其中,startRow为可视区域左上角显示图像像素点所在分块图像的行号,
其中,endRow为可视区域左下角显示图像像素点所在分块图像的行号,
其中,startCol为可视区域左上角显示图像像素点所在分块图像的列号,
其中,endCol为可视区域右上角显示图像像素点所在分块图像的列号,
可视区域内显示的分块图像的索引位置数据为:
具体地,在得到startRow、endRow、startCol和endCol之后,就可以得到可视区域内显示的所有分块图像的索引位置,在行号为startRow与endRow之间,列号为startCol与endCol之间的所有分块图像均是可视区域内显示的分块图像。
在具体的实施例中,本申请的实施例采用向***申请一定的RAM空间来缓存图像的分块图像数据,并且切换图像后,该空间可以复用。
S4,基于可视区域内显示的分块图像的索引位置数据实时加载可视区域内显示的分块图像,并将可视区域内显示的分块图像在可视区域内进行显示。
在具体的实施例中,步骤S4中具体包括:
S41,根据可视区域内显示的分块图像的索引位置数据通过多线程方式同时加载对应的分块图像并保存在RAM中;
S42,将加载完后的可视区域内显示的分块图像绘制在可视区域中。
在具体的实施例中,步骤S41具体包括:分别根据可视区域内显示的分块图像的索引位置(r,c)获取分块图像的左上角、右上角、左下角和右下角在图像中的坐标位置:
左上角(realBlockSize*c,realBlockSize*r),
右上角(min(realBlockSize*(c+1),IW),realBlockSize*r),
左下角(realBlockSize*c,min(realBlockSize*(r+1),IH)),
右下角(min(realBlockSize*(c+1),IW),min(realBlockSize*(r+1),IH)),
其中,公式min(a,b)表示为取a和b的最小值,IW为图像的宽度,IH为图像的高度;因此可以得到多个分块图像在图像中的坐标位置。
基于Android***的图片区域解码方式进行加载,解码方法为BitmapRegionDecoder.decodeRegion(clipImageRect,decodingOptions),其中clipImageRect为分块图像的左上角、右上角、左下角和右下角在图像中的坐标位置的封装,decodingOptions为解析设置的参数类,包含缩放比例。
具体地,以索引位置为(1,1)单个分块图像数据为例,那么分块图像数据在原图像中的四个点位置即为:
左上角(realBlockSize*1,realBlockSize*1),
右上角(min(realBlockSize*2,IW),realBlockSize*1),
左下角(realBlockSize*1,min(realBlockSize*2,IH)),
右下角(min(realBlockSize*2,IW),min(realBlockSize*2,IH))。
有了四个点的坐标后,基于Android***,采用BitmapRegionDecoder.
decodeRegion(clipImageRect,decodingOptions)进行加载。
在具体的实施例中,步骤S42具体包括:
以(x0,y0)为坐标原点,计算出可视区域内显示的分块图像的索引位置为(r,c)的分块图像在可视区域的坐标位置:
左上角(realBlockSize*c-x0,realBlockSize*r-y0),
右上角(min(realBlockSize*(c+1),IW)-x0,realBlockSize*r-y0),
左下角(realBlockSize*c-x0,min(realBlockSize*(r+1),IH)-y0),
右下角(min(realBlockSize*(c+1),IW)-x0,min(realBlockSize*(r+1),IH)-y0),
其中,公式min(a,b)表示为取a和b的最小值,IW为图像的宽度,IH为图像的高度。因此可以得到多个分块图像在可视区域内的坐标位置。
最终将分块图像根据分块图像在可视区域的坐标位置,绘制到可视区域。
以图中索引位置为(1,0)的分块图像为例,(x0,y0)坐标对应可视区域的原点(0,0),所以分块图像在可视区域的坐标为:
左上角(-x0,realBlockSize*1-y0),
右上角(min(realBlockSize*1,IW)-x0,realBlockSize*1-y0),
左下角(-x0,min(realBlockSize*2,IH)-y0),
右下角(min(realBlockSize*1,IW)-x0,min(realBlockSize*2,IH)-y0)。
进一步参考图5,作为对上述各图所示方法的实现,本申请提供了一种图像显示装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
本申请实施例提供了一种图像显示装置,包括:
缩略图生成模块1,被配置为获取图像,基于图像得到缩略图,并采用MD5算法对图像的文件路径进行加密,生成密文,将缩略图的名称命名为密文的名称;
缩略图显示模块2,被配置为在图像显示过程中,响应于图像需要分块加载,根据图像的文件路径获取图像对应的缩略图并进行显示;
分块模块3,被配置为将图像进行分块,得到多个分块图像,根据可视区域的宽度和高度以及图像显示的缩放倍数计算得到分块的宽高,并根据图像中分块图像所在的行号和列号建立每个分块图像所在的索引位置,根据分块的宽高与可视区域的坐标位置得到可视区域内显示的分块图像的索引位置数据;
分块显示模块4,被配置为基于可视区域内显示的分块图像的索引位置数据实时加载可视区域内显示的分块图像数据,可视区域内显示的分块图像数据包括分块图像的左上角、右上角、左下角和右下角在图像中的坐标位置,并将分块图像在可视区域内进行显示。
下面参考图6,其示出了适于用来实现本申请实施例的电子设备(例如图1所示的服务器或终端设备)的计算机装置600的结构示意图。图6示出的电子设备仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图6所示,计算机装置600包括中央处理单元(CPU)601和图形处理器(GPU)602,其可以根据存储在只读存储器(ROM)603中的程序或者从存储部分609加载到随机访问存储器(RAM)604中的程序而执行各种适当的动作和处理。在RAM 604中,还存储有装置600操作所需的各种程序和数据。CPU 601、GPU602、ROM 603以及RAM 604通过总线605彼此相连。输入/输出(I/O)接口606也连接至总线605。
以下部件连接至I/O接口606:包括键盘、鼠标等的输入部分607;包括诸如、液晶显示器(LCD)等以及扬声器等的输出部分608;包括硬盘等的存储部分609;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分610。通信部分610经由诸如因特网的网络执行通信处理。驱动器611也可以根据需要连接至I/O接口606。可拆卸介质612,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器611上,以便于从其上读出的计算机程序根据需要被安装入存储部分609。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分610从网络上被下载和安装,和/或从可拆卸介质612被安装。在该计算机程序被中央处理单元(CPU)601和图形处理器(GPU)602执行时,执行本申请的方法中限定的上述功能。
需要说明的是,本申请所述的计算机可读介质可以是计算机可读信号介质或者计算机可读介质或者是上述两者的任意组合。计算机可读介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的装置、装置或器件,或者任意以上的组合。计算机可读介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行装置、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行装置、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本申请的操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本申请各种实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的装置来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中。
作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:获取图像,基于图像得到缩略图,并采用MD5算法对图像的文件路径进行加密,生成密文,将缩略图的名称命名为密文的名称;在图像显示过程中,响应于图像需要分块加载,根据图像的文件路径获取图像对应的缩略图并进行显示;将图像进行分块,得到多个分块图像,根据可视区域的宽度和高度以及图像显示的缩放倍数计算得到分块的宽高,并根据图像中分块图像所在的行号和列号建立每个分块图像所在的索引位置,根据分块的宽高与可视区域的坐标位置得到可视区域内显示的分块图像的索引位置数据;基于可视区域内显示的分块图像的索引位置数据实时加载可视区域内显示的分块图像数据,可视区域内显示的分块图像数据包括分块图像的左上角、右上角、左下角和右下角在图像中的坐标位置,并将分块图像在可视区域内进行显示。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (12)
1.一种图像显示方法,其特征在于,包括以下步骤:
S1,获取图像,基于所述图像得到缩略图,并采用MD5算法对所述图像的文件路径进行加密,生成密文,将所述缩略图的名称命名为密文的名称;
S2,在所述图像显示过程中,响应于所述图像需要分块加载,根据所述图像的文件路径获取所述图像对应的所述缩略图并进行显示;
S3,将所述图像进行分块,得到多个分块图像,根据可视区域的宽度和高度以及所述图像显示的缩放倍数计算得到所述分块的宽高,并根据所述图像中分块图像所在的行号和列号建立每个分块图像所在的索引位置,根据所述分块的宽高与所述可视区域的坐标位置得到所述可视区域内显示的分块图像的索引位置数据;
S4,基于所述可视区域内显示的分块图像的索引位置数据实时加载可视区域内显示的分块图像,并将所述可视区域内显示的分块图像在所述可视区域内进行显示。
3.根据权利要求2所述的图像显示方法,其特征在于,所述步骤S3中的根据所述分块的宽高与所述可视区域的坐标位置得到所述可视区域内显示的分块图像的索引位置数据,具体包括:
以所述图像的左上角为坐标原点,获取所述可视区域在所述图像中的坐标位置,其中,(x0,y0)为可视区域左上角在图像中的坐标位置,
(x1,y1)为可视区域右上角在图像中的坐标位置,
(x2,y2)为可视区域左下角在图像中的坐标位置,
(x3,y3)为可视区域右下角在图像中的坐标位置,
计算所述可视区域内显示的分块图像的索引位置,公式如下:
其中,startRow为所述可视区域左上角显示图像像素点所在分块图像的行号,
其中,endRow为可视区域左下角显示图像像素点所在分块图像的行号,
其中,startCol为可视区域左上角显示图像像素点所在分块图像的列号,
其中,endCol为可视区域右上角显示图像像素点所在分块图像的列号,
所述可视区域内显示的分块图像的索引位置数据为:
4.根据权利要求3所述的图像显示方法,其特征在于,所述步骤S4中具体包括:
S41,根据所述可视区域内显示的分块图像的索引位置数据通过多线程方式同时加载对应的分块图像并保存在RAM中;
S42,将加载完后的所述可视区域内显示的分块图像绘制在可视区域中。
5.根据权利要求4所述的图像显示方法,其特征在于,所述步骤S41具体包括:分别根据所述可视区域内显示的分块图像的索引位置(r,c)获取所述分块图像的左上角、右上角、左下角和右下角在所述图像中的坐标位置:
左上角(realBlockSize*c,realBlockSize*r),
右上角(min(realBlockSize*(c+1),IW),realBlockSize*r),
左下角(realBlockSize*c,min(realBlockSize*(r+1),IH)),
右下角(min(realBlockSize*(c+1),IW),min(realBlockSize*(r+1),IH)),
其中,公式min(a,b)表示为取a和b的最小值,IW为所述图像的宽度,IH为所述图像的高度;
基于Android***的图片区域解码方式进行加载,解码方法为BitmapRegionDecoder.decodeRegion(clipImageRect,decodingOptions),其中clipImageRect为分块图像的左上角、右上角、左下角和右下角在所述图像中的坐标位置的封装,decodingOptions为解析设置的参数类,包含缩放比例。
6.根据权利要求4所述的图像显示方法,其特征在于,所述步骤S42具体包括:
以(x0,y0)为坐标原点,计算出所述可视区域内显示的分块图像的索引位置为(r,c)的分块图像在可视区域的坐标位置:
左上角(realBlockSize*c-x0,realBlockSize*r-y0),
右上角(min(realBlockSize*(c+1),IW)-x0,realBlockSize*r-y0),
左下角(realBlockSize*c-x0,min(realBlockSize*(r+1),IH)-y0),
右下角(min(realBlockSize*(c+1),IW)-x0,min(realBlockSize*(r+1),IH)-y0),
其中,公式min(a,b)表示为取a和b的最小值,IW为所述图像的宽度,IH为所述图像的高度,
最终将分块图像根据所述分块图像在可视区域的坐标位置,绘制到可视区域。
7.根据权利要求1所述的图像显示方法,其特征在于,所述步骤S1中的获取图像,基于所述图像得到缩略图,具体包括:
解析所述图像,获取所述图像的分辨率;
响应于所述图像的分辨率大于预设分辨率阈值,确定压缩比,基于所述压缩比对所述图像进行压缩,得到所述缩略图,所述预设分辨率阈值为所述可视区域的分辨率。
8.根据权利要求7所述的图像显示方法,其特征在于,所述步骤S2中的响应于所述图像需要分块加载,获取所述图像对应的所述缩略图并进行显示,具体包括:
判断所述图像是否需要分块加载,若是,则根据所述图像的文件路径计算出对应的密文,在所述缩略图保存路径下查找与所述密文的名称对应的缩略图并进行显示,否则,直接显示所述图像。
9.根据权利要求7所述的图像显示方法,其特征在于,所述步骤S1还包括:当保存的缩略图的额数量达到设定的数量时,将进行使用频次最少的图像的缩略图进行删除。
10.一种图像显示装置,其特征在于,包括:
缩略图生成模块,被配置为获取图像,基于所述图像得到缩略图,并采用MD5算法对所述图像的文件路径进行加密,生成密文,将所述缩略图的名称命名为密文的名称;
缩略图显示模块,被配置为在所述图像显示过程中,响应于所述图像需要分块加载,根据所述图像的文件路径获取所述图像对应的所述缩略图并进行显示;
分块模块,被配置为将所述图像进行分块,得到多个分块图像,根据可视区域的宽度和高度以及所述图像显示的缩放倍数计算得到所述分块的宽高,并根据所述图像中分块图像所在的行号和列号建立每个分块图像所在的索引位置,根据所述分块的宽高与所述可视区域的坐标位置得到所述可视区域内显示的分块图像的索引位置数据;
分块显示模块,被配置为基于所述可视区域内显示的分块图像的索引位置数据实时加载可视区域内显示的分块图像,并将所述可视区域内显示的分块图像在所述可视区域内进行显示。
11.一种电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-9中任一所述的方法。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-9中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210202859.5A CN114969409A (zh) | 2022-03-02 | 2022-03-02 | 一种图像显示方法、装置及可读介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210202859.5A CN114969409A (zh) | 2022-03-02 | 2022-03-02 | 一种图像显示方法、装置及可读介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114969409A true CN114969409A (zh) | 2022-08-30 |
Family
ID=82976373
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210202859.5A Pending CN114969409A (zh) | 2022-03-02 | 2022-03-02 | 一种图像显示方法、装置及可读介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114969409A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116975335A (zh) * | 2023-09-25 | 2023-10-31 | 瀚博半导体(上海)有限公司 | 图像扭曲运算的顺序仿存方法、装置、介质及电子设备 |
-
2022
- 2022-03-02 CN CN202210202859.5A patent/CN114969409A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116975335A (zh) * | 2023-09-25 | 2023-10-31 | 瀚博半导体(上海)有限公司 | 图像扭曲运算的顺序仿存方法、装置、介质及电子设备 |
CN116975335B (zh) * | 2023-09-25 | 2023-12-26 | 瀚博半导体(上海)有限公司 | 图像扭曲运算的顺序仿存方法、装置、介质及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2022110903A1 (zh) | 全景视频渲染方法及*** | |
CN107204023B (zh) | 避免绘制在canvas画布中的图形失真的方法和装置 | |
US8913068B1 (en) | Displaying video on a browser | |
US20220277481A1 (en) | Panoramic video processing method and apparatus, and storage medium | |
JP2018512644A (ja) | 低品質タイルを使用してメモリ帯域幅を減らすためのシステムおよび方法 | |
US20110145730A1 (en) | Utilization of Browser Space | |
CN109272526B (zh) | 图像处理方法、***及电子设备 | |
Yamaoka et al. | Visualization of high-resolution image collections on large tiled display walls | |
CN107301220B (zh) | 数据驱动视图的方法、装置、设备及存储介质 | |
CN114969409A (zh) | 一种图像显示方法、装置及可读介质 | |
US9501812B2 (en) | Map performance by dynamically reducing map detail | |
CN109672931B (zh) | 用于处理视频帧的方法和装置 | |
CN109739403B (zh) | 用于处理信息的方法和装置 | |
CN115082356B (zh) | 基于shader的视频流图像校正方法、装置和设备 | |
CN115588064A (zh) | 视频生成方法、装置、电子设备及存储介质 | |
CN114092362A (zh) | 一种全景图片加载方法和装置 | |
US9787962B2 (en) | Accelerated super-resolution processing method for TV video images, accelerated super-resolution processing device for TV video images that is used in same method, first to sixth accelerated super-resolution processing programs, and first to second storage media | |
CN113763552A (zh) | 三维地理模型的展示方法、装置、计算机设备和存储介质 | |
CN113986168A (zh) | 一种图像显示方法、装置、设备及可读存储介质 | |
CN111861890B (zh) | 三维地图生成方法和装置 | |
CN114066721B (zh) | 显示方法、装置和电子设备 | |
CN112668474B (zh) | 平面生成方法和装置、存储介质和电子设备 | |
CN113763459B (zh) | 元素位置更新方法、装置、电子设备及存储介质 | |
CN117523062B (zh) | 光照效果的预览方法、装置、设备及存储介质 | |
CN112822418B (zh) | 视频处理方法和装置、存储介质和电子设备 |
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 |