本发明涉及图片处理优化领域,特别是涉及一种电子设备、及其应用的图片处理方法及系统。
背景技术:
随着移动智能设备的兴起普及,基于Upnp协议的Dlna技术出现使得设备之间的互联互通,让我们的照片、视频、音乐能在移动设备之间共享,进而使得数字媒体和内容服务的无限制的共享和增长成为可能,例如,将手机平板电脑等移动设备中的照片投射到智能电视大屏幕上显示。然而由于现在的移动设备所带的摄像头像素越来越高,使得拍摄出来的图片的资源大小越来越大,这样投射图片以及来回切换图片显示时都要去加载图片,由于移动设备之间的交互不那么顺畅,会产生显示的时延,使得用户体验变差。
现有许多Dlna实现方式上图片显示存在的缺陷:
1.图片来回切换显示时需重复下载后再显示。
2.缓存图片时无空间资源大小限制和淘汰删除策略,使得缓存越来越大,占用存储器空间
3.构建图片缓存映射时以名字为键值比较单一,若投射的图片名字是随机生成的,则以图片名字为键值时达不到图片显示加速的目的。
技术实现要素:
鉴于以上所述现有技术的缺点,本发明的目的在于提供一种电子设备、及其应用的图片处理方法及系统,用于解决现有技术中图片匹配不准确、且图片需要重复下载而降低处理效率等的问题。
为实现上述目的及其他相关目的,本发明提供一种图片处理方法,包括:从控制端推送过来的图片显示请求的url中提取下载的图片的标识,并通过url获取下载的图片的资源大小且以预设规则获取下载的图片的部分字节,其中,所述图片标识包括所述图片的名称和图片的后缀名;以所述资源大小、所述后缀名以及所述部分字节为键值建立第一缓存映射表;根据所述第一缓存映射表将所述图片缓存于本地。
于本发明一具体实施例中,还包括:当接收到从一控制端下载图片的图片下载请求时,从所述控制端获取待下载图片的后缀名和资源大小,且根据所述预设规则从所述控制端获取待下载图片的部分字节;根据所述第一缓存映射表查找本地是否存在与待下载图片的后缀名、资源大小以及部分字节匹配的图片;若存在,则直接获取本地已经缓存的图片;若不存在,则向所述控制端请求下载所述待下载图片。
于本发明一具体实施例中,还包括:获取下载的图片的名称;以所述图片的名称为键值建立第二缓存映射表;根据所述第二缓存映射表将所述图片缓存于本地;当接收到从一控制端下载图片的图片下载请求时,根据所述第二缓存映射表查找本地是否存在与待下载图片的名称匹配的图片;若存在,则直接获取本地已经缓存的图片;若不存在,则从url中提取后缀名、根据url从所述控制端获取图片资源的大小且根据所述预设规则从所述控制端获取待下载图片的部分字节;根据所述第一缓存映射表查找本地是否存在与待下载图片的后缀名、资源大小以及部分字节匹配的图片;若存在,则直接获取本地已经缓存的图片;若不存在,则向所述控制端请求下载所述待下载图片。
于本发明一具体实施例中,所述向所述控制端请求下载所述待下载图片的步骤包括:从所述控制端获取待下载图片的资源大小;判断所述待下载图片的资源大小以及本地已缓存的图片的资源大小之和是否大于预设容量阈值;若是,则删除在近期最少使用的图片,以在所述待下载图片的资源大小与本地已缓存的图片的资源大小之和不大于预设容量阈值时,从所述控制端下载所述待下载图片;若否,则直接从所述控制端下载所述待下载图片;或所述向所述控制端请求下载所述待下载图片的步骤包括:从所述控制端获取待下载图片;判断本地已缓存的图片的缓存项与所述待下载图片的缓存项之和是否大于预设缓存项阈值;若是,则删除近期最少使用的图片,以在本地已缓存的图片的缓存项与所述待下载图片的缓存项之和不大于预设缓存项阈值时,从所述控制端下载所述待下载图片;若否,则直接从所述控制端下载所述待下载图片。
于本发明一具体实施例中,所述预设规则包括:从所述图片的固定位置开始,获取特定个数的字节。其中所述特定个数的字节为以下中的一种或多种:1)图片内容的部分字节;2)拍摄照片时,拍照程序向图片固定位置添加的能唯一标示所述图片的通用唯一识别码;3)在拍摄后形成的图片中通过图像处理软件在所述图片固定位置添加的能唯一标示所述图片的通用唯一识别码。
为实现上述目的及其他相关目的,本发明还提供一种图片处理系统,包括:获取模块,用以从控制端推送过来的图片显示请求的url中提取下载的图片的标识,并通过url获取下载的图片的资源大小且以预设规则获取下载的图片的部分字节,其中,所述图片标识包括所述图片的名称和图片的后缀名;建表模块,用以以所述资源大小、所述后缀名以及部分字节为键值建立第一缓存映射表;用以根据所述第一缓存映射表将所述图片缓存于本地。
于本发明一具体实施例中,还包括下载模块,用以接收到从一控制端下载图片的图片下载请求时,从所述控制端获取待下载图片的后缀名和资源大小,且根据所述预设规则从所述控制端获取待下载图片的部分字节;根据所述第一缓存映射表查找本地是否存在与待下载图片的后缀名、资源大小以及部分字节匹配的图片;若存在,则直接获取本地已经缓存的图片;若不存在,则向所述控制端请求下载所述待下载图片。
于本发明一具体实施例中,所述获取模块还用以获取下载的图片的名称;所述建表模块还用以以所述图片的名称为键值建立第二缓存映射表;所述缓存模块还用以根据所述第二缓存映射表将所述图片缓存于本地;所述下载模块还用以当接收到从一控制端下载图片的图片下载请求时,根据所述第二缓存映射表查找本地是否存在与待下载图片的名称匹配的图片;若存在,则直接获取本地已经缓存的图片;若不存在,则从url中提取后缀名、根据url从所述控制端获取图片资源的大小且根据所述预设规则从所述控制端获取待下载图片的部分字节;根据所述第一缓存映射表查找本地是否存在与待下载图片的后缀名、资源大小以及部分字节匹配的图片;若存在,则直接获取本地已经缓存的图片;若不存在,则向所述控制端请求下载所述待下载图片。
于本发明一具体实施例中,所述下载模块向所述控制端请求下载所述待下载图片包括:从所述控制端获取待下载图片的资源大小;判断所述待下载图片的资源大小以及本地已缓存的图片的资源大小之和是否大于预设容量阈值;若是,则删除近期最少使用的图片,以在所述待下载图片的资源大小以及本地已缓存的图片的资源大小之和不大于预设容量阈值时,从所述控制端下载所述待下载图片;若否,则直接从所述控制端下载所述待下载图片;或所述下载模块向所述控制端请求下载所述待下载图片包括:从所述控制端获取待下载图片;判断本地已缓存的图片的缓存项与所述待下载图片的缓存项之和是否大于预设缓存项阈值;若是,则删除近期最少使用的图片,以在本地已缓存的图片的缓存项与所述待下载图片的缓存项之和不大于预设缓存项阈值时,从所述控制端下载所述待下载图片;若否,则直接从所述控制端下载所述待下载图片。
于本发明一具体实施例中,所述预设规则包括:从所述图片的固定位置开始,获取特定个数的字节。其中所述特定个数的字节为以下中的一种或多种:1)图片内容的部分字节;2)拍摄照片时,拍照程序在所述图片固定位置添加的能唯一标示所述图片的通用唯一识别码;3)在拍摄后形成的图片中通过图像处理软件在所述图片固定位置添加的能唯一标示所述图片的通用唯一识别码。
为实现上述目的及其他相关目的,本发明还提供一种电子设备,包括如上任一项所述的图片处理系统。
如上所述,本发明的电子设备、及其应用的图片处理方法及系统,以下载的图片的资源大小、后缀名以及部分字节为键值建立第一缓存映射表,且根据所述第一缓存映射表将所述图片缓存于本地。且在后续需要下载图片时,可先根据待下载图片的后缀名、资源大小以及部分字节在本地进行查找相匹配的图片,如果存在相匹配的图片,则直接获取,如果没有相匹配的图片,才从控制端对图片进行下载,避免了图片的重复下载,提高图片获取的效率,且以图片的后缀名、资源大小以及部分字节为键值进行匹配,提高匹配的准确率,可防止现有技术中只以图片名称为键值进行匹配而产生匹配结果不准确从而图片需要重复下载而降低处理效率等的问题。
附图说明
图1显示为本发明的图片处理方法在一具体实施例中的流程示意图。
图2显示为本发明的图片处理系统在一具体实施例中的模块示意图。
图3显示为本发明的图片处理系统在一具体实施例中的模块示意图。
元件标号说明
S11~S13 步骤
20 图片处理系统
21 获取模块
22 建表模块
23 缓存模块
24 下载模块
30 控制端
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图示中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
对图片的获取的速度,在很大程度上影响着用户的体验,本发明针对经常使用的图片的缓存构建,使得来回切换图片时避免重复下载图片资源,使得设备的交互更顺畅,进而提供更好的用户体验。
请参阅图1,显示为本发明的图片处理方法在一具体实施例中的流程示意图。所述图片处理方法应用于一电子设备(本地设备)中,所述电子设备例如为智能电视、智能投影仪、电脑、服务器等可对图片进行接收和处理的智能设备。优选的,所述电子设备还可对接收的图片进行显示。所述图片处理方法包括:
S11:从控制端推送过来的图片显示请求的url中提取下载的图片的标识,并通过url获取下载的图片的资源大小且以预设规则获取下载的图片的部分字节,其中,所述图片标识包括所述图片的名称和图片的后缀名;于本发明一具体实施例中,所述预设规则包括:从所述图片的固定位置开始,获取特定个数的字节。例如为获取从图片中间位置开始的15个连续字节。其中所述特定个数的字节为以下中的一种或多种:1)图片内容的部分字节;2)拍摄照片时,拍照程序在所述图片固定位置添加的能唯一标示所述图片的通用唯一识别码;3)在拍摄后形成的图片中通过图像处理软件在所述图片固定位置添加的能唯一标示所述图片的通用唯一识别码。所述控制端例如为智能手机或电脑等智能设备。
S12:以所述资源大小、所述后缀名以及所述部分字节为键值建立第一缓存映射表;于本发明一具体实施例中,基于LRU算法(Least Recently Used,近期最少使用算法)建立所述第一缓存映射表。进一步的,还可将所述资源大小、所述后缀名以及部分字节组成的字符串作为所述键值建立第一缓存映射表。
S13:根据所述第一缓存映射表将所述图片缓存于本地,即缓存与本地的电子设备中。
于本发明一具体实施例中,还包括:当接收到从一控制端下载图片的图片下载请求时,从所述控制端获取待下载图片的后缀名和资源大小,且根据所述预设规则从所述控制端获取待下载图片的部分字节;根据所述第一缓存映射表查找本地是否存在与待下载图片的后缀名、资源大小以及部分字节匹配的图片;若存在,则直接获取本地已经缓存的图片;若不存在,则向所述控制端请求下载所述待下载图片。所述控制端例如为智能手机或电脑等智能设备。采用后缀名、资源大小以及部分字节为键值建立第一缓存映射表,因为在现有的部分电子设备中,例如小米手机,出于对推送资源的名称保护的考虑,将推送过来的图片的名称随机生成,而采用后缀名、资源大小以及部分字节作为键值,则可以较好的避免在以图片的名称为键值时,因为图片的名称随机生成而造成匹配不准确的问题。
于本发明一具体实施例中,还包括:获取下载的图片的名称;以所述图片的名称为键值建立第二缓存映射表;根据所述第二缓存映射表将所述图片缓存于本地;当接收到从一控制端下载图片的图片下载请求时,根据所述第二缓存映射表查找本地是否存在与待下载图片的名称匹配的图片;若存在,则直接获取本地已经缓存的图片;若不存在,则从url中提取后缀名、根据url从所述控制端获取图片资源的大小且根据所述预设规则从所述控制端获取待下载图片的部分字节;根据所述第一缓存映射表查找本地是否存在与待下载图片的后缀名、资源大小以及部分字节匹配的图片;若存在,则直接获取本地已经缓存的图片;若不存在,则向所述控制端请求下载所述待下载图片。即采用双缓存映射表,进一步避免对图片的重复缓存,且采用图片的名称为键值,匹配较为明显,且获取的数据也较为直观,所以通过图片的名称进行匹配为更加优选的方案,且在名称匹配不上时,再采用图片的后缀名、资源大小以及部分字节为键值进行匹配。防止图片的名称随机选取时,由于名称匹配不上,而重复下载图片的问题。
在一具体应用中,例如,当移动设备(控制端)向OTT(OTT是"Over The Top"的缩写,是指通过互联网向用户提供各种应用服务。这种应用和目前运营商所提供的通信业务不同,它仅利用运营商的网络,而服务由运营商之外的第三方提供。目前,典型的OTT业务有互联网电视业务,苹果应用商店等。)盒子智能电视(本地设备)投影图片时,首先电视端会将缓存目录里的图片资源构建图片名称为键值的缓存映射表,且构建以图片的后缀名、资源大小以及部分字节为键值的缓存映射表。
当电视端接收到投影图片指令时,首先根据图片的名称查找映射表,若已经缓存有该图片,则不用再去重复下载,直接在本地缓存中读取显示
若图片名称没匹配上,则远程获取图片的资源大小和部分字节以及提取的图片后缀名构成唯一键值查找内容映射表,其中,部分字节例如为图片中间位置开始的15个字节或图片末尾的uuid,若找到则本地缓存读取显示,避免了再次下载整张图片资源,减少了图片显示的时间,增强了用户体验。
若以上两个缓存映射表都没匹配上,则这时候可以确定该图片不在缓存中,需要向控制端请求下载。
查找时,严格按照先名字后内容为键值的查找,在一些Dlna(DIGITAL LIVINGNETWORK ALLIANCE,数字生活网络联盟)设备中有些投影的图片名称是固定的,而有些名称是随机生成,对于名称固定的投影图片很容易缓存,但是对于名称随机生成的图片,投影时显然再以名称为键值缓存就达不到缓存的目的,这时若以图片的后缀名、资源大小以及部分字节的一个组合作为键值进行查找,将有效的减少因名字匹配不上而需重复下载图片资源的时间。显然,对于经常来回切换显示投影图片的时候,能达到更好用户体验。
在一具体应用中,查找以内容为键值的映射表的方式包括:
1、远程不下载图片而获取图片资源长度:
Http协议中常用的method字段有三种:
GET:请求指定的页面信息,并返回实体主体。
HEAD:只请求页面的首部。
POST:请求服务器接受所指定的文档作为对所标识的URI的新的从属实体。
其中,Method为HEAD时,不会去下载资源而是在Http头部的Content-Length字段返回资源的长度,并且相应代码为200。
2、获取图片中间位置开始的连续15个字节或者图片末尾的uuid:
Http协议中的Range头域可以请求实体的一个或者多个子范围,请求成功服务端将返回这个域指定的位置的内容,并且响应代码为206
3、将获取到的中间位置开始的连续15字节转为十六进制格式的字符串或图片末尾的uuid、图片的后缀名以及图片的资源大小拼接上作为键值查找内容映射表:
格式:
Key:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX-后缀名-图片的资源大小
于本发明一具体实施例中,所述向所述控制端请求下载所述待下载图片的步骤包括:从所述控制端获取待下载图片的资源大小;判断所述待下载图片的资源大小以及本地已缓存的图片的资源大小之和是否大于预设容量阈值;若是,则删除近期最少使用的图片,以在所述待下载图片的资源大小以及本地已缓存的图片的资源大小之和不大于预设容量阈值时,从所述控制端下载所述待下载图片;若否,则直接从所述控制端下载所述待下载图片;例如,以预设的1个小时内,图片被使用的次数由大到小进行优先级的排列,依次删除当前优先级别最低的图片,以使缓存空间满足条件。
或所述向所述控制端请求下载所述待下载图片的步骤包括:从所述控制端获取待下载图片;判断本地已缓存的图片缓存项与所述待下载图片的缓存项之和是否大于预设缓存项阈值;若是,则删除近期最少使用的图片,以在本地已缓存的图片的缓存项与所述待下载图片的缓存项之和不大于预设缓存项阈值时,从所述控制端下载所述待下载图片;若否,则直接从所述控制端下载所述待下载图片。其中,近期最少使用的图片例如为在预设时间内被操作的最少的图片,所述预设时间例如为1个小时。
在一具体应用实例中,通过http请求,不下载图片资源,而从远端获取图片资源的大小,根据获得的图片资源大小计算缓存空间是否已经超出最大值或者缓存项是否超出最大值,如超出则将最近最少使用的图片删除释放缓存空间,直到缓存空间低于最大值或者缓存项低于最大值,避免缓存空间不断增长,浪费存储空间。
根据下载的图片资源构建以名字为键值的缓存映射表。
构建以图片中间位置开始的15个连续字节组成十六进制形式的字符串或图片文件的末尾处的uuid拼接上图片资源长度以及后缀名为键值的缓存映射表。
图片缓存的总大小和总条目设置例如为:
private int cacheSize=0;
private int cacheByteSize=0;
private final int maxCacheItemSize=64;
private long maxCacheByteSize=1024*1024*5;//5M
当图片缓存大小超过5M时,或者缓存的条目超过64项时,将最久未使用的图片删除以释放缓存空间,避免因缓存造成存储空间紧张。例如,以预设的1个小时内,图片被使用的次数由大到小进行优先级的排列,依次删除当前优先级别最低的图片,以使缓存空间满足条件。
于本发明一具体实施例中,还包括将下载或获取的图片进行显示,且在下载或获取图片的过程中,将当前显示的图片以预设的动画效果逐渐退出,且退出时间与所述图片的下载或获取时间相关,这样可缓解因加载显示图片的时间而造成的顿挫感,增强用户体验。
请参阅图2,显示为本发明的图片处理系统在一具体实施例中的模块示意图。所述图片处理系统20,包括获取模块21、建表模块22以及缓存模块23。所述图片处理系统20包括于一电子设备(本地设备)中,所述电子设备例如为智能电视、智能投影仪、电脑、服务器等可对图片进行接收和处理的智能设备。优选的,所述电子设备还可对接收的图片进行显示。
所述获取模块21用以从控制端30推送过来的图片显示请求的url中提取下载的图片的标识,并通过url获取下载的图片的资源大小且以预设规则获取下载的图片的部分字节,其中,所述图片标识包括所述图片的名称和图片的后缀名;所述控制端30例如为智能手机或电脑等智能设备。
所述建表模块22用以以所述资源大小、所述后缀名以及部分字节为键值建立第一缓存映射表;
所述缓存模块23用以根据所述第一缓存映射表将所述图片缓存于本地。
于本发明一具体实施例中,参阅图3,显示为本发明的图片处理系统在一具体实施例中的模块示意图。所述图片处理系统20还包括下载模块24,用以接收到从一控制端30下载图片的图片下载请求时,从所述控制端30获取待下载图片的后缀名和资源大小,且根据所述预设规则从所述控制端30获取待下载图片的部分字节;根据所述第一缓存映射表查找本地是否存在与待下载图片的后缀名、资源大小以及部分字节匹配的图片;若存在,则直接获取本地已经缓存的图片;若不存在,则向所述控制端30请求下载所述待下载图片。
于本发明一具体实施例中,所述获取模块21还用以获取下载的图片的名称;所述建表模块22还用以以所述图片的名称为键值建立第二缓存映射表;所述缓存模块23还用以根据所述第二缓存映射表将所述图片缓存于本地;所述下载模块24还用以当接收到从一控制端30下载图片的图片下载请求时,根据所述第二缓存映射表查找本地是否存在与待下载图片的名称匹配的图片;若存在,则直接获取本地已经缓存的图片;若不存在,则从url中提取后缀名、根据url从所述控制端30获取图片资源的大小且根据所述预设规则从所述控制端30获取待下载图片的部分字节;根据所述第一缓存映射表查找本地是否存在与待下载图片的后缀名、资源大小以及部分字节匹配的图片;若存在,则直接获取本地已经缓存的图片;若不存在,则向所述控制端30请求下载所述待下载图片。
于本发明一具体实施例中,所述下载模块24向所述控制端30请求下载所述待下载图片包括:从所述控制端30获取待下载图片的资源大小;判断所述待下载图片的资源大小以及本地已缓存的图片的资源大小之和是否大于预设容量阈值;若是,则删除在近期最少使用的图片,以在所述待下载图片的资源大小以及本地已缓存的图片的资源大小之和不大于预设容量阈值时,从所述控制端30下载所述待下载图片;若否,则直接从所述控制端30下载所述待下载图片;或所述下载模块24向所述控制端30请求下载所述待下载图片包括:从所述控制端30获取待下载图片;判断本地已缓存的图片的缓存项与所述待下载图片的缓存项之和是否大于预设缓存项阈值;若是,则删除近期最少使用的图片,以在本地已缓存的图片的缓存项与所述待下载图片的缓存项之和不大于预设缓存项阈值时,从所述控制端30下载所述待下载图片;若否,则直接从所述控制端30下载所述待下载图片。其中,近期最少使用的图片例如在预设时间内被操作的最少的图片,所述预设时间例如为1个小时。
于本发明一具体实施例中,还包括显示模块,用以将下载或获取的图片进行显示,且在所述下载模块24下载或获取图片的过程中,将当前显示的图片以预设的动画效果逐渐退出,且退出时间与所述图片的下载或获取时间相关。
于本发明一具体实施例中,所述预设规则包括:从所述图片的固定位置开始,获取特定个数的字节。其中所述特定个数的字节为以下中的一种或多种:1)图片内容的部分字节;2)拍摄照片时,拍照程序在所述图片固定位置添加的能唯一标示所述图片的通用唯一识别码;3)在拍摄后形成的图片中通过图像处理软件在所述图片固定位置添加的能唯一标示所述图片的通用唯一识别码。
所述图片处理系统20为与图1所示图片处理方法相对应的系统项,两者技术方案一一对应,所有关于所述图片处理方法的描述均可应用于本实施例中,在此不加赘述。
综上所述,本发明的电子设备、及其应用的图片处理方法及系统,以下载的图片的资源大小、后缀名以及部分字节为键值建立第一缓存映射表,且根据所述第一缓存映射表将所述图片缓存于本地。且在后续需要下载图片时,可先根据待下载图片的资源大小、后缀名以及部分字节在本地进行查找相匹配的图片,如果存在相匹配的图片,则直接获取,如果没有相匹配的图片,才从控制端对图片进行下载,避免了图片的重复下载,提高图片获取的效率,且以图片的资源大小、后缀名以及部分字节为键值进行匹配,提高匹配的准确率,可防止现有技术只以图片名称为键值进行匹配而产生匹配结果不准确从而图片需要重复下载而降低处理效率等的问题。所以,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。