具体实施方式
本申请的主要思想在于,通过将各图像的原始属性转换为对应的归一化属性,并采用该归一化属性对应的展示方式展示转换后的各图像,以达到提高展示图像的灵活性的目的。本申请提供的技术方案可以应用于涉及图像展示的各种场景,例如,手机相册中照片的展示、个人计算机(PersonalComputer,PC)展示网页中的图像等。
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
参考图1,图1为本申请实施例提供的图像的展示处理方法的流程图。
步骤101,针对各图像,根据该图像的原始属性,以及预设的原始属性与归一化属性的对应关系,将该图像的原始属性转换为对应的归一化属性。
具体而言,在对要展示的各图像进行展示之前,可先提取各图像的原始属性,然后根据各图像的原始属性以及预设的原始属性与归一化属性的对应关系,对要展示的图像的原始属性进行归一化处理。也就是说,根据预设的原始属性与归一化属性的对应关系,将各图像的原始属性转换为对应的归一化属性。
在本申请中,图像的原始属性包括但不限于图像的宽高比、颜色、格式、描述信息、名称、作者、创建日期等。相应地,归一化属性也包括但不限于图像的宽高比、颜色、格式、描述信息、名称、作者、创建日期等。
下面以图像的原始属性为该图像的原始宽高比为例进行说明。
当进行归一化处理所针对的图像的原始属性是图像的原始宽高比时,归一化属性为归一化宽高比。则在步骤101中,将一个图像的原始属性转换为对应的归一化属性时,可根据该图像的原始宽高比,确定该原始宽高比所在的宽高比范围,根据预设的宽高比范围与归一化宽高比的对应关系,确定该原始宽高比所在的宽高比范围对应的归一化宽高比,再将该图像的宽高比转换为确定的归一化宽高比。其中,在将该图像的宽高比转换为归一化宽高比时,可以按照该归一化宽高比直接将该图像的宽高比放缩成该归一化宽高比,或者,也可以通过剪裁的方式,将该图像剪裁成该归一化宽高比的图像。
由于理论上一个图像的原始宽高比可以是任意的正数,因此,在预设宽高比范围时,可以在(0,+∞)这个区间内任意划分宽高比范围。而由于在实际的应用场景中,一般单反相机拍摄的图像的原始宽高比一般是3:2或2:3,卡片相机拍摄的图像的原始宽高比多为3:4或4:3,720p和1080p的屏幕上显示的图像的原始宽高比一般是16:9或9:16,专辑封面的图像的原始宽高比一般是1:1,全景图的原始宽高比不定,一般为3:1~7:1,因此,可以将预设四种宽高比范围,分别是(0,0.8]、(0.8,1.25]、(1.25,2]、(2,+∞)。
对于每一个宽高比范围,可以预设对应的归一化宽高比。其中,一个宽高比范围对应的归一化宽高比可以代表性地体现该宽高比范围内的各种原始宽高比的图像。例如,在上述常见的原始宽高比中,原始宽高比9:16和3:4所在的宽高比范围是(0,0.8],而由于2:3可以代表性的体现(0,0.8]这个宽高比范围内的图像,因此,将2:3作为宽高比范围(0,0.8]对应的归一化宽高比。类似的,可以选择1:1作为宽高比范围(0.8,1.25]对应的归一化宽高比,选择3:2作为宽高比范围(1.25,2]对应的归一化宽高比,选择3:1作为宽高比范围(2,+∞)对应的归一化宽高比。由此,作为本申请示意性的示例,预设的宽高比范围和归一化宽高比的对应关系如表1所示:
宽高比范围 |
归一化宽高比 |
(0,0.8] |
2:3 |
(0.8,1.25] |
1:1 |
表1
如表1可知,当提取一个图像的原始宽高比后,可以根据表1确定该图像的原始宽高比所在的宽高比范围,然后,根据该原始宽高比所在的宽高比范围与归一化宽高比的对应关系,确定与该宽高比范围对应的归一化宽高比,从而可以将图像的原始宽高比转换为该归一化宽高比。
步骤102,按照要展示各图像的展示顺序,对转换后的各图像的归一化属性进行排序,得到归一化属性序列。
具体而言,由于在展示多个图像时,这多个图像的展示顺序是预先确定的(如,可按照各图像的生成时间从前到后或从后到前的顺序展示,也可按照图像名称首字母在字母表中的排序从前到后或从后到前的顺序展示),因此,通过步骤101将要展示的各图像的原始属性转换为归一化属性后,可以按照要展示各图像的展示顺序,直接对转换后的各图像的归一化属性进行排序,得到归一化属性序列。
此外,在实际操作中,为了便于根据归一化属性序列进行后续的展示,可以为每个归一化属性设定相应的属性标识,每个归一化属性均可通过对应的属性标识表示,相应的,得到归一化属性序列的方法可以为:确定转换后的各图像的归一化属性对应的属性标识,按照要展示各图像的展示顺序,对转换后的各图像的归一化属性对应的属性标识进行排序,将得到的该标识序列作为归一化属性序列。其中,属性标识可以包括但不限于字母、汉字、数字或其他字符,也可以是由上述几种字符的组合构成的字符串。
继续沿用上例,可以为归一化宽高比2:3设定属性标识T,为归一化宽高比1:1设定属性标识N,为归一化宽高比3:2设定属性标识W,为归一化宽高比3:1设定属性标识P,则图像的宽高比范围、归一化宽高比、属性标识之间的对应关系如表2所示:
宽高比范围 |
归一化宽高比 |
属性标识 |
(0,0.8] |
2:3 |
T |
(0.8,1.25] |
1:1 |
N |
(1.25,2] |
3:2 |
W |
(2,+∞) |
3:1 |
P |
表2
如表2所示,假设要展示的图像为图像a、图像b、图像c、图像d这四个图像,图像a的原始宽高比所在的宽高比范围对应的归一化宽高比为2:3,而归一化宽高比2:3对应的属性标识为T,则图像a对应的属性标识为T。类似的,图像b的原始宽高比所在的宽高比范围对应的归一化宽高比为1:1,则图像b对应的属性标识为N,图像c的原始宽高比所在的宽高比范围对应的归一化宽高比为3:2,则图像c对应的属性标识为W,图像d的原始宽高比所在的宽高比范围对应的归一化宽高比为3:1,则图像d对应的属性标识为P。假设要展示这四个图像的顺序为图像a、图像b、图像c、图像d,则对转换后的各图像的归一化属性对应的属性标识进行排序,得到的标识序列为“TNWP”,将该标识序列“TNWP”作为归一化属性序列。
步骤103,在预先保存的展示方式中,查找该归一化属性序列对应的展示方式,并采用查找到的展示方式展示转换后的各图像。
具体而言,由于预设的归一化属性是数量有限的几种归一化属性,因此,理论上可以穷举出所有由这几种归一化属性所构成的归一化属性序列,并为每种归一化属性序列预设对应的展示方式。则根据步骤102得到的归一化属性序列,可以直接在预先保存的展示方式中,查找该归一化属性序列对应的展示方式,并采用查找到的展示方式展示通过步骤101得到的转换后的各图像。
继续沿用上例,由于得到的归一化属性序列为“TNWP”,而预先存储的“TNWP”对应的展示方式为如图2a所示的展示方式,即,属性标识T对应的图像展示在第一行的左侧,属性标识N对应的图像展示在第一行的中间,属性标识W对应的图像展示在第一行的右侧,属性标识为P的图像展示在第二行,且第一行展示的三个图像的高度相等,宽度之和为展示图像所在的页面的宽度,第二行展示的图像的宽度为展示图像所在的页面的宽度。则可采用如图2a所示的展示方式展示转换成相应归一化宽高比后的图像a~d这四个图像,展示这4个图像的示意图如图2b所示。
进一步的,在实际应用场景中,虽然预设的归一化属性只是有限的几种,但是要展示的图像的数量却并不是固定的,假设要展示的图像的数量为n个,则由于归一化属性是四种,因此需要穷举的归一化属性序列共有41+42+43+……+4n-1+4n种。如,上例中要展示四个图像,因此需要穷举的归一化属性序列共有41+42+43+44=340种。穷举340种归一化属性序列对应的展示方式并保存在实际应用场景中是可接受的,但如果要展示的图像的数量较多,则需要穷举的归一化属性序列对应的展示方式的数量会呈指数级别增长,也就会因为要占用大量的存储资源而不被接受。因此,为了保证在实际应用场景中穷举各种归一化属性序列对应的展示方式的数量不至于过大,以保证上述如图1所示的方法的适用性,在本申请实施例中,预先保存的任一展示方式所展示的图像的数量不大于设定数量。例如,该设定数量可以为4,则理论上只需穷举340种归一化属性序列对应的展示方式即可。
另外,为了表示出归一化属性序列的结束位置,还可在步骤102得到的归一化属性序列的末尾添加一个结束标识。其中,该结束标识例如可以为“#”。如,上例中得到的归一化属性序列为“TNWP”,则添加了结束标识后的归一化属性序列即为“TNWP#”。
相应的,当要展示的图像的数量大于上述设定数量时,则在得到归一化属性序列后,如图1所示的步骤103中,在预先保存的展示方式中查找该归一化属性序列对应的展示方式,并采用查找到的展示方式展示转换后的图像的方法可以如图3所示。
图3为本申请实施例提供的根据归一化属性序列查找相应的展示方式并展示图像的过程,具体包括以下步骤:
步骤1031:按照该归一化属性序列中各归一化属性的先后顺序,将该归一化属性序列中的一个归一化属性添加到预设的存储空间中。
其中,本申请实施例中所述的预设的存储空间可以是预留的一个堆栈或一部分缓存。在初始化时,该存储空间是被清空的。并且,由于本申请实施例中归一化属性可通过对应的属性标识表示,因此,在步骤1031中,可按照归一化属性序列中各属性标识的先后顺序,将归一化属性序列中的一个属性标识添加到预设的存储空间中。
例如,假设通过如图1所示的步骤102得到的归一化属性(即,归一化宽高比)序列为“TNTPPTW#”(其中,“#”为结束标识),则可先将该归一化属性序列中的第一个属性标识(即,第一个T)添加到预设的存储空间中。则此时,由当前该存储空间中存储的各归一化属性所构成的子序列为“T”。
步骤1032:在预先保存的展示方式中,查找由当前该存储空间中存储的各归一化属性所构成的子序列对应的展示方式。
具体的,由于可通过属性标识表示相应的归一化属性,因此,可根据当前添加到该存储空间中的各属性标识,以及添加各属性标识的先后顺序,确定由当前该存储空间中存储的各属性标识所构成的子序列。
继续沿用上例,由于由当前该存储空间中存储的属性标识所构成的子序列为“T”,因此,可在预先保存的展示方式中,查找该子序列“T”对应的展示方式。
步骤1033:判断是否查找到该子序列对应的展示方式,若是执行步骤1034,否则返回步骤1031。
步骤1034:采用查找到的展示方式,展示当前该存储空间中存储的各归一化属性所属的转换后的图像,并清空子序列,执行步骤1035。
步骤1035:判断是否已经展示了所有图像,若是,执行步骤1036,否则,返回步骤1031。
步骤1036:流程结束。
也即,若查找到由当前该存储空间中存储的各归一化属性所构成的子序列对应的展示方式,则采用查找到的展示方式,展示当前该存储空间中存储的各归一化属性所属的转换后的图像,并清空子序列,继续通过步骤1031将该归一化属性序列中的下一个归一化属性(具体可以是归一化属性对应的属性标识)添加到该存储空间中,并执行步骤1032,查找由当前该存储空间中存储的各归一化属性所构成的子序列对应的展示方式,直至展示所有转换后的图像为止;若未查找到由当前该存储空间中存储的各归一化属性所构成的子序列对应的展示方式,则返回步骤1031,将该归一化属性序列中的下一个归一化属性添加到该存储空间中,并通过步骤1032,查找由当前该存储空间中存储的各归一化属性所构成的子序列对应的展示方式,直至查找到由当前该存储空间中存储的各归一化属性所构成的子序列对应的展示方式时,再采用查找到的展示方式,展示当前该存储空间中存储的各归一化属性所属的转换后的图像。
继续沿用上例,假设步骤1032中未查找到子序列“T”对应的展示方式,则步骤1033的判断结果为否,因此返回步骤1031,将归一化属性序列“TNTPPTW#”中的第二个属性标识“N”添加到该存储空间中,则由于当前该存储空间中存储的属性标识为“T”和“N”,且添加的先后顺序为“T”、“N”,因此,由当前该存储空间中存储的各属性标识所构成的子序列变成了“TN”,然后执行步骤1032,继续查找子序列“TN”对应的展示方式。
假设查找到了子序列“TN”对应的展示方式,则步骤1033的判断结果为是,执行步骤1034,即,采用查找到的展示方式,展示子序列中的属性标识“T”和“N”对应的归一化属性所属的转换后的图像,并清空子序列,执行步骤1035。
在执行步骤1035时,可判断前一个子序列中是否存在结束标识“#”,若不存在,可确定未展示所有图像,若存在,则确定已经展示了所有的图像。由于前一个子序列为“TN”,不存在结束标识“#”,因此步骤1035的判断结果为否,返回步骤1031,将归一化属性序列“TNTPPTW#”中的第三个属性标识“T”添加到存储空间中,并继续执行步骤1032,以此循环,直至展示了所有图像为止。
需要说明的是,在上例中,虽然预设的每种展示方式所展示的图像的数量不大于4,因此理论上共可穷举出340种归一化属性序列对应的展示方式,但是,在实际应用中,采用如图3所示的方法查找展示方式并展示图像时,理论上的这340种归一化属性序列有很多是存在矛盾的,因此,实际上并不需要穷举出340种归一化属性对应的展示方式。具体的,当每种展示方式所展示的图像的数量不大于4时,需要穷举出的归一化属性序列及其对应的展示方式如图4~图57所示。
如图4~57所示,共穷举了54种归一化属性序列及其对应的展示方式,这54种归一化属性序列中并不包含归一化属性序列“TT”(需要说明的是,归一化属性序列“TT”并不等同于“TT#”,“TT#”表示归一化属性序列中的最后两个属性标识是“TT”,而“TT”则表示归一化属性序列中包含属性标识“TT”,但并不是最后两个属性标识),这是因为如果穷举的归一化属性序列中包含“TT”,且展示方式中包含“TT”对应的展示方式,那么采用如图3所示的查找展示方式并展示图像的方法时,如果由当前存储空间中存储的各属性标识所构成的子序列为“TT”,后续就不会再查找归一化属性序列“TTT”、“TTN”、“TTW”或“TTP”,而会直接采用“TT”对应的展示方式展示图像。也就是说,归一化属性序列“TTT”、“TTN”、“TTW”、“TTP”这几种序列,与归一化属性序列“TT”是矛盾的。类似的,理论上的340种归一化属性序列中存在诸多这种矛盾的序列,从而,将矛盾的序列去除后,就只剩下如图4~57这54种。
进一步的,在采用如图3所示的方法查找展示方式并相应展示图像时,每采用一种展示方式展示图像时,采用该展示方式展示图像时,展示图像所占用的展示区域的宽度为页面的宽度,其中,所述的页面为展示图像所在的页面。也即,采用任意一种展示方式展示图像时,都要占用100%的页面宽度进行展示,以尽量提高页面的利用率。而且,为了进一步提高页面的利用率,采用一种展示方式展示图像时,所展示的各图像之间的空隙可不大于设定阈值。例如,空隙宽度不大于10个像素。
另外,由于采用预先保存的任意一种展示方式展示图像时,都要占用100%的页面宽度进行展示,因此,在查找到第一个子序列对应的展示方式并展示该子序列对应的各图像之后,查找第二个子序列对应的展示方式并展示图像时,可在页面中用于展示第一个子序列对应的图像的展示区域的下方继续展示第二个子序列对应的图像。
继续沿用上例,由于得到的归一化属性序列为“TNTPPTW#”,因此,基于图4~57,展示“TNTPPTW#”对应的各图像的示意图如图58所示。
另外,由图4~图57可见,虽然对于一种归一化宽高比的图像来说,该图像的宽高比是固定的,也即,该图像的宽度与高度的比值是固定的,但是在不同的展示方式下,同一种归一化宽高比的图像的宽度和高度却不尽相同,而由于本申请实施例中采用任意一种展示方式展示图像时,都要占用100%的页面宽度,页面宽度是固定的,而且图像之间的空隙也是不大于设定阈值的,因此,根据某种展示方式展示图像时,可根据页面宽度、图像之间的空隙、各图像的归一化宽高比,确定各图像的宽度和高度,并将各图像宽度和高度按相应的归一化宽高比放缩至确定的宽度和高度,再采用该展示方式展示图像。
当然,根据归一化属性序列查找相应的展示方式并展示图像的方法并不仅限于如图3所示的方法,也可以是其他方法,例如,当预设的任意一种展示方式所展示的图像的数量不大于设定数量(如,该设定数量为4)时,可直接将该归一化属性序列划分为若干个子序列,其中,每个子序列中所包含的属性标识的数量均不大于该设定数量,然后针对划分得到的每个子序列,在预先保存的展示方式中,查找该子序列对应的展示方式,并采用该展示方式展示该子序列中包含的各属性标识对应的归一化属性所属的转换后的图像,这里就不再一一赘述。
以上仅是以各图像的原始属性为原始宽高比为例说明的图像展示方法,当然还可以根据各图像的其他原始属性展示各图像,例如,当图像的原始属性为描述信息时,可针对一个图像,根据该图像的描述信息中的关键词,确定该图像的类型(如,当关键词为某地名或风景区名时,确定该图像类型为风景类型),并根据预先的图像的类型与归一化属性的对应关系(例如,风景类型对应的归一化属性也可以是归一化宽高比3:1),将该图像转换成该图像的类型对应的归一化属性,再根据归一化属性相应的展示,这里就不再一一赘述。
以上为本申请实施例提供的图像的展示方法,基于同样的思路,本申请还提供一种图像的展示装置,如图59所示。
图59为本申请实施例提供的图像的展示处理装置结构示意图,具体包括:
转换模块5901,用于针对各图像,根据该图像的原始属性,以及预设的原始属性与归一化属性的对应关系,将该图像的原始属性转换为对应的归一化属性;
序列获取模块5902,用于按照要展示各图像的展示顺序,对转换后的各图像的归一化属性进行排序,得到归一化属性序列;
展示模块5903,用于在预先保存的展示方式中,查找所述归一化属性序列对应的展示方式,并采用查找到的展示方式展示转换后的各图像。
所述转换模块5901具体用于,根据该图像的原始宽高比,确定所述原始宽高比所在的宽高比范围,根据预设的宽高比范围与归一化宽高比的对应关系,确定所述原始宽高比所在的宽高比范围对应的归一化宽高比,将该图像的宽高比转换为确定的归一化宽高比。
所述展示模块5903具体用于,执行下述步骤A~C:
步骤A、按照所述归一化属性序列中各归一化属性的先后顺序,将所述归一化属性序列中的一个归一化属性添加到预设的存储空间中;
步骤B、在预先保存的展示方式中,查找由当前所述存储空间中存储的各归一化属性所构成的子序列对应的展示方式,若未查找到,返回步骤A,若查找到,执行步骤C;
步骤C、采用查找到的展示方式,展示当前所述存储空间中存储的归一化属性所属的转换后的图像,并清空所述存储空间,继续执行步骤A,直至展示所有转换后的图像为止。
所述归一化属性通过对应的属性标识表示。
所述展示模块5903采用预先保存的任一展示方式展示图像所占用的展示区域的宽度为页面的宽度,其中,所述页面为展示图像所在的页面;和/或,所述展示模块5903采用预先保存的任一展示方式所展示的图像的数量不大于设定数量。
根据本申请的技术方案,能够通过将各图像的原始属性转换为对应的归一化属性,并且按照要展示各图像的展示顺序,得到归一化属性序列,然后可以采用在预先保存的展示方式中查找到的与归一化属性序列对应的展示方式展示转换后的各图像。与现有技术相比,本申请提供的技术方案在页面中展示多种尺寸的图像时,并非是在固定尺寸的区块中展示多种多样尺寸的图像,而是可以根据图像的原始属性的特点,采用适合于该原始属性的展示方式展示图像,因此,可有效提高展示图像的灵活性。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flashRAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。