具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明的具体实施例进行详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。
本发明实施例提供一种在背景画面上显示叠加图形的方法,以处理个性化显示和预置显示信息之间的矛盾,利用该方法,无论用户在显示屏幕上设置什么样的背景画面,用户都能够清晰地看到在背景画面上叠加的图形内容(如文本和图片,图片可包括图像、菜单、文本框及其他图形),不会因为这些图形要素的颜色和背景画面的相近或者相同而不能辨别。
图形显示轮廓是通过图形本身的颜色和背景画面的颜色对比形成的,为了让叠加在背景画面上的图形(包含文字)能够突出显示出来,本发明实施例除了考虑图形的颜色和背景画面对应部分的颜色外,还需考虑图形轮廓附近范围内的背景画面的颜色。举例来说,当在背景画面上显示一个数字,不仅考虑数字本身的颜色,数字字库边框内的颜色也考虑进去。当显示的不是数字,而是其他图形的时候,叠加图形边框(叠加区域)的大小有可能变化,这个框内的颜色也有可能不是一样的。本发明实施例根据叠加区域内的背景画面颜色决定叠加在背景画面上的、显示范围不超出这个区域的叠加图形的颜色。
实施例1
如图1所示,本发明实施例的在背景画面上显示叠加图形的处理过程如下:
步骤110,确定叠加图形所占的区域。该步骤可具体包括:
(1)获取叠加图形在背景画面或屏幕上的位置。
可以以叠加图形左上角的像素点在背景画面或终端屏幕上的位置坐标作为该叠加图形在背景画面或终端屏幕上的位置。
(2)确定叠加图形的高度及宽度,根据叠加图形的位置、高度及宽度确定叠加图形所占的叠加区域。
如果叠加图形是图片(可包括图像、菜单、文本框等),则可容易地获取图片边框的高度和宽度,根据图片边框的高度、宽度以及图片边框的位置可以确定图片所占的叠加区域。
如果叠加图形是文本,则可根据文本的起始位置、长度以及文本字库高度、文本字库宽度以及行间距等确定文本所占的叠加区域。本发明实施例中,所述叠加区域也可以为文本本身。
图2所示,在背景画面210上确定的叠加图形所占的叠加区域为220。
步骤120,根据所述叠加区域内背景画面的各像素的颜色编码值计算该叠加区域内背景画面的颜色特征值。该步骤可具体包括:
(一)获取叠加区域内背景画面各像素的颜色编码值。
在确定叠加区域后,对叠加区域的背景颜色进行计算,获得叠加区域内背景画面上各像素的颜色编码值,颜色编码值的红绿蓝三个颜色分量即为RGB值。
像素点或像素的颜色编码值可以是8位,16位,18位或者24位数字。对于红绿蓝三种颜色,对应的可用一个二进制编码标识。三个颜色各占编码值中若干位,构成一个像素的颜色。16位色,则红绿蓝分别占5,6,5位;18位则各占6位;24位则各占8位。对一幅图像进行数字化的过程,就是使用固定的编码格式(8位、16位、18位或者24位数字)对颜色进行编码的过程。
叠加区域的颜色为灰度时,颜色编码值(灰度值)可以拥下列公式表示:
s=f(x,y) (1)
s代表灰度值,f为灰度值描述函数,x,y为相对于原点(如叠加区域起始点)的横、纵坐标。
当叠加区域不是灰度的时候,颜色编码值可以采用下列公式表示:
R=f(x,y) (2)
G=g(x,y) (3)
B=h(x,y) (4)
这里的x,y为相对于原点(如叠加区域起始点)的横、纵坐标,而f,g,h为对应颜色值描述函数。R、G、B为具体的位置的三原色值。
(二)根据所述颜色编码值计算该叠加区域内背景画面的颜色特征值。
颜色特征值表示的是描述给定区域(色块)内各颜色特征的量化指标,可以通过对一个区域的各颜色进行某些运算来获得,这些运算可以包括:取最大值、最小值或平均值等处理。本实施例中所述叠加区域内背景画面的颜色特征值可以使用下面公式描述:
CR=F(f(x,y)) (5)
CG=F(g(x,y)) (6)
CB=F(h(x,y)) (7)
这里的x,y为相对于原点(如叠加区域起始点)的横、纵坐标,而f,g,h为对应颜色值描述函数,而R,G,B为这些点三个颜色分量的值。CR,CG,CB为三个颜色分量在这片区域的颜色特征值。F为取特征值的方法,F包括但不限于求和、取平均、取最大值、取最小值或取方差等算法。例如,如下给出了通过对叠加区域内颜色取平均来计算颜色特征值的方法:
其中n为该叠加区域内像素点的个数。
步骤130~140,将所述颜色特征值逐位取反后的值作为叠加区域内叠加图形的颜色特征值,绘制并显示所述叠加图形。
当获取了叠加区域内背景画面的颜色特征值以后,分别对三个颜色的特征值逐位取反,就得到了叠加区域内叠加图形的颜色特征值,保存逐位取反后获得的颜色特征值。
例如,当一幅图的颜色,使用16位二进制数编码(16位色)表示的时候,红、绿、蓝对应的位数分别为5、6、5,即5bit红色,6bit绿色,5bit蓝色。那简单地,白色可以标识为0xFFFF,黑色为0x0000,红色为0xF800,绿色为0x07E0,蓝色为0x001F。这里用5位二进制数代表红色,那么纯红色就是11111b,最后的b代码二进制数;红色为最小时,就是0b;从无色到纯红色,共分了32级。用6位二进制数代表绿色,那么纯绿色就是111111b,最后的b代码二进制数;绿色为最小时,就是0b;从无色到纯绿色,共分了64级。用5位二进制数代表蓝色,那么纯蓝色就是11111b,最后的b代码二进制数;蓝色为最小时,就是0b;从无色到纯蓝色,共分了32级。
当取得该图对应的色块的特征值后,这个特征值可以是一个16位二进制数,逐位取反,可以获得最终叠加的图形使用的颜色。如图3所示的色块,宽240,高320;色块的三分之一区域为纯红(图3左侧区域所示),三分之一为纯绿(图3中间区域所示),三分之一为纯蓝(图3右侧区域所示);若按颜色平均计算,这个色块的各个颜色的特征值分别为:
由于红色用5位二进制数表示,绿色用6位二进制数表示,蓝色用5位二进制数表示,则此色块的颜色特征值可以表示为二进制:
也即为16进制的0x52AA,按位取反,直接得到0xAD55;也可以理解为:
0xFFFF-0x52AA=0xAD55
取反后各个颜色的特征值为:
如果叠加区域为图3所示的色块,这时使用颜色值0xAD55作为叠加图形的颜色,叠加图形外的像素使用透明色,将图形叠加在背景画面上,这样就在屏幕的背景画面上实现图像或文字等叠加图形的绘制与显示,并能够获取比较好的效果,方便用户分辨显示的信息和背景图像。
通过如上步骤,终端屏幕上固定显示的信息在各种背景下都能够被用户清晰辨认,从而可以使用户个性化的设置背景画面。
下面说明叠加图形为文本时,在新的背景画面上显示文本的方法流程。如图4所示,具体包括如下步骤:
步骤410,用户选择设置新的背景画面(图片)。
该新的背景画面显示在终端的显示界面上。
步骤420~430,确定叠加文本在背景画面(或终端显示屏幕)上所占的区域。该步骤可具体包括:
步骤420,获取文本在背景画面或屏幕上的起始位置、文本的长度、文本字库高度、文本字库宽度以及行间距等。
可以以文本左上角像素点的位置作为该文本的起始位置。
根据文本的长度及每一行能够显示的字符个数可判断文本需要显示的行数,根据文本对应的字库的高度(每一行中有大小不同的字库高度时,可仅考虑该行最高的字库高度)、文本的行距以及文本的行数则可以计算叠加文本所占区域的高度。叠加文本所占的区域的宽度是每一行内所有字符的宽度总和。本实施例中,文本的字符宽度可以是等宽的,也可以是非等宽(加宽或压缩)的,在非等宽情况下,各行文本的宽度为该行内各个字符的宽度的总和,由于每个字符宽度可能不一样,因此需要各个字符的宽度一一相加。在字符等宽的情况下,各行文本的宽度为该行字符数乘以字符宽度。
步骤430,根据文本的起始位置、文本所占区域的高度及文本所占区域的宽度确定文本所占的区域。
图5所示,在背景画面510上确定的叠加文本所占的区域为方框520。
如上确定文本所占区域的宽度和高度时,可以以一个显示界面内整个文本对应的高度及宽度作为文本所占区域。也可以以文本中的每个段落为单位,分别获取每一段文本的高度和宽度,从而确定每一段文本所占的区域。还可以以行为单位,分别获取每一行中文本的宽度总和及文本的(最大)字库高度,从而可以确定每一行所占的区域。在确定文本所占的区域时,还可以考虑文本的对齐方式(如水平方向上的左对齐、右对齐和居中对齐,以及垂直方向上的上对齐、下对齐和居中对齐),以使确定的文本所占的区域更加精确。
步骤440,获取步骤430获得的文本所占区域(方框)内背景画面的各像素的颜色编码值(如RGB值),根据所述颜色编码值计算该方框内背景画面的颜色特征值。
在获取叠加区域后,对叠加区域的背景颜色进行计算,得到叠加区域背景画面各像素的颜色编码值。根据所述颜色特征值通过对一个区域的各颜色进行某些运算来获得,这些运算可以包括:求和、取最大值、取最小值或取平均等计算获得该方框内背景画面的颜色特征值。
步骤450,将步骤440获得的颜色特征值逐位取反,将逐位取反后的值作为方框内文本的颜色特征值。
步骤460,根据步骤450中获得的方框内文本的颜色特征值,利用像素的透明色,将文本重新叠加在背景画面上,实现文本的显示。
经过如上步骤,终端屏幕上固定显示的文本信息在各种背景下都能够被用户清晰辨认,从而可以使用户个性化的设置背景画面,解决了现有技术中个性化显示和预置显示信息之间的矛盾。由于本实施例中将背景画面叠加区域的颜色特征值作为叠加图形颜色特征值,因此叠加图形的各像素的颜色编码值是一样的。
上述实施例步骤450中是对叠加区域内背景画面的颜色特征值进行逐位取反变换,并将变换后的颜色特征值作为叠加区域内叠加图形的颜色特征值,但本发明并不限于此。作为本发明的另一实施例,在上述步骤450中还可以对叠加区域内背景画面的颜色特征值进行其他颜色偏移变换,例如在叠加区域内背景画面的颜色特征值上加上或减去一颜色偏移量;或者对叠加区域内背景画面的颜色特征值进行逐位取反后加上或减去一颜色偏移量,其他步骤可以不变。该实施例同同样可以实现背景画面上叠加文本的清晰显示。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤可以通过程序来指令相关的硬件来完成。
图6所示为本发明实施例中能够实现如上方法的显示装置的结构方框图,如图6所示,该显示装置包括:
区域确定单元61,用于确定叠加图形所占的叠加区域;
计算单元62,用于根据所述叠加区域内背景画面的各像素的颜色编码值计算该叠加区域内背景画面的颜色特征值;
显示单元63,用于将所述颜色特征值逐位取反后的值作为叠加区域内叠加图形的颜色特征值,绘制并显示所述叠加图形。
该显示装置可以设置在手机等移动通信终端或其他具有背景画面及文字(或图片)显示功能的任何终端中。
本发明另一实施例中,所述区域确定单元包括:
获取叠加图形的位置的单元;
获取叠加图形的高度和宽度的单元;
根据所述叠加图形的位置、高度及宽度确定叠加图形所占的叠加区域的单元。
叠加图形为图片时,所述获取叠加图形的高度和宽度的单元以所述图片的边框的宽度和高度作为所述图片的高度和宽度。
所述叠加图形为文本时,获取叠加图形的高度和宽度的单元根据文本字库高度以及行间距获得各行文本的高度,并根据文本字库宽度以及各行内的字符数获得各行文本的宽度。
实施例2
本实施例中并不是以叠加区域内背景画面的颜色特征值逐位取反后的值作为叠加图形的颜色特征值,而是以叠加区域中背景画面各像素的颜色编码值逐位取反后的值作为该叠加图形对应像素的颜色编码值。
如图7所示为本实施例的在背景画面上显示叠加图形的处理过程,图7中:
步骤710,确定叠加图形所占的叠加区域。同实施例1中步骤110。
步骤720,获取所述叠加区域内背景画面的各像素的颜色编码值,并对所述颜色编码值进行颜色偏移变换。
步骤720,获取所述叠加图形的各像素的位置,将对应位置的变换后颜色编码值作为叠加图形的该像素的颜色编码值,绘制并显示所述叠加图形。
当获取了叠加区域背景画面各像素的颜色编码值(RGB值)以后,对所述颜色编码值逐位取反。将背景画面各像素的颜色编码值逐位取反后的值作为背景画面上叠加图形对应像素的颜色编码值。
获得了叠加图形对应像素的颜色编码值后,将图形叠加在背景画面上,就实现叠加图形的绘制与显示。
例如,如果要在左侧区域为绿色,右侧区域为蓝色的背景画面中显示叠加“V”字图形,如果该“V”字图形也为绿色,则在现有技术中,该图形叠加在背景画面上的显示效果例如图9所示。图9中,叠加区域为方框内的区域,而叠加区域中包含一个“V”字。由于“V”字为绿色,所以如图9所示,左边V字不可见。而如果利用本实施例的步骤,以叠加区域中背景画面各像素的颜色编码值逐位取反后的值作为该叠加图形对应像素的颜色编码值进行显示,叠加区域中叠加图形外的区域的像素使用透明色,则显示效果如图10所示,V字的左侧和右侧以不同的颜色显示出来。
本发明实施例中,所述叠加区域可以包括叠加图形以外的区域,也可以仅包括叠加图形,即正好与叠加图形重合。此时,步骤720获取的叠加区域内背景画面的各像素的颜色编码值为叠加图形所覆盖的背景画面各像素的颜色编码值。
通过如上步骤,终端屏幕上固定显示的信息在各种背景下都能够被用户清晰辨认,从而可以使用户个性化的设置背景画面。
下面说明叠加图形为文本时,在新的背景画面上显示文本的方法流程。如图8所示,具体包括如下步骤:
步骤810~步骤830,同实施例1中步骤410~430。
步骤840,获取步骤830获得的文本所占区域(方框)内背景画面的各像素的颜色编码值,并取反保存。
在获取叠加区域后,对叠加区域的背景颜色进行计算,得到叠加区域背景画面各像素的颜色编码值(RGB值)。对颜色编码值逐位取反,并保存取反后获得的颜色编码值。
步骤850,对叠加区域中文本的每个像素位置,将步骤840保存的对应位置的颜色编码值(即对背景画面颜色编码值逐位取反后获得的颜色编码值)作为文本中该像素的颜色编码值。
步骤860,根据步骤850中获得的叠加区域内文本像素的颜色编码值,将文本叠加在背景画面上(叠加区域中文本之外的像素使用透明色),实现背景画面上叠加文本的显示。
本发明实施例中,所述叠加图形可以为包括文本字库边框的区域,也可以仅包括文本本身,此时,步骤840获取的背景画面各像素的颜色编码值为叠加图形所覆盖的背景画面各像素的颜色编码值。
经过如上步骤,终端屏幕上固定显示的文本信息在各种背景下都能够被用户清晰辨认,从而可以使用户个性化的设置背景画面,解决了现有技术中个性化显示和预置显示信息之间的矛盾。只不过本实施例中叠加图形的各像素的颜色编码值有可能是不同的。
上述实施例步骤840中是对叠加区域内背景画面的各像素的颜色编码值进行逐位取反变换,并在步骤850中将叠加图形的各像素的对应位置的变换后颜色编码值作为叠加图形的该像素的颜色编码值,但本发明并不限于此。作为本发明的另一实施例,在上述步骤840中还可以对叠加区域内背景画面的颜色编码值进行其他颜色偏移变换,例如在叠加区域内背景画面各像素的颜色编码值上加上或减去一颜色偏移量;或者对叠加区域内背景画面的各像素颜色编码值进行逐位取反后加上或减去一颜色偏移量,然后在步骤850中将叠加图形的各像素的对应位置的变换后颜色编码值作为叠加图形的该像素的颜色编码值。该实施例同样可以实现背景画面上叠加文本的清晰显示。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤可以通过程序来指令相关的硬件来完成。
如图11所示,本实施例中能够实现如上方法的显示装置包括:
区域确定单元111,用于确定叠加图形所占的叠加区域;
获取单元112,用于获取所述叠加区域内背景画面的各像素的颜色编码值,并对所述颜色编码值进行颜色偏移变换;
显示单元113,用于获取所述叠加图形的各像素的位置,将对应位置的变换后颜色编码值作为叠加图形的该像素的颜色编码值,绘制并显示所述叠加图形。
该显示装置可以设置在手机等一通通信终端或其他具有背景画面及文字(或图片)显示功能的任何终端中。
本发明另一实施例中,所述区域确定单元包括:
获取叠加图形的位置的单元;
获取叠加图形的高度和宽度的单元;
根据所述叠加图形的位置、高度及宽度确定叠加图形所占的叠加区域的单元。
叠加图形为图片时,所述获取叠加图形的高度和宽度的单元以所述图片的边框的宽度和高度作为所述图片的高度和宽度。
所述叠加图形为文本时,获取叠加图形的高度和宽度的单元根据文本字库高度以及行间距获得各行文本的高度,并根据文本字库宽度以及各行内的字符数获得各行文本的宽度。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。