本发明涉及智能设备领域,尤其涉及一种颜色配置的方法和装置。
背景技术:
随着各种智能终端和智能家电等智能设备的广泛使用,用户对于智能设备上各种应用(Application,APP)的用户界面(User Interface,UI)的要求越来越高。
当用户界面的背景图片被更换时,更换后的背景图片的颜色与显示在该背景图片上的文字的颜色可能存在不匹配的情况。比如原来用户界面上的文字颜色为白色,背景图片的颜色为以黑色为主,则字体颜色与背景图片的颜色搭配合理,文字醒目,但当背景图片的颜色被变更为偏白色时,此时文字颜色如果仍然为白色,则字体颜色与背景图片的颜色搭配不合理,导致用户界面上的文字看不清楚,影响用户体验。
技术实现要素:
本发明的目的在于提供一种颜色配置的方法和装置,旨在解决现有技术中文字颜色不能随着背景颜色的变化自动进行搭配的问题。
本发明的第一方面,提供一种颜色配置的方法,包括:
若检测到用户界面的背景图片被更换,则确定所述用户界面中的文字在更换后的背景图片中对应的背景区域;
计算所述背景区域的背景颜色值;
根据所述背景颜色值设置所述文字的文字颜色值,使得所述文字颜色值对应的颜色与所述背景颜色值对应的颜色不同。
本发明的第二方面,提供一种颜色配置的装置,包括:
检测模块,用于若检测到用户界面的背景图片被更换,则确定所述用户界面中的文字在更换后的背景图片中对应的背景区域;
计算模块,用于计算所述背景区域的背景颜色值;
设置模块,用于根据所述背景颜色值设置所述文字的文字颜色值,使得所述文字颜色值对应的颜色与所述背景颜色值对应的颜色不同。
本发明与现有技术相比存在的有益效果是:智能设备若检测到用户界面的背景图片被更换,则确定该用户界面中的文字在更换后的背景图片中对应的背景区域,通过计算背景区域的背景颜色值,并根据该背景颜色值设置文字的文字颜色值,使得文字颜色值对应的颜色与背景颜色值对应的颜色不同,实现了当背景图片被更换时,文字的颜色能够随着背景颜色的变化自动进行搭配,使得用户不再需要手动调整文字的颜色来搭配背景图片的颜色,从而提高智能化水平,增强用户体验。
附图说明
图1是本发明实施例一提供的一种颜色配置的方法的流程图;
图2是本发明实施例二提供的一种颜色配置的方法的流程图;
图3是本发明实施例二提供的一种颜色配置的方法中使用A-Star算法搜索最短路径的示意图;
图4是本发明实施例三提供的一种颜色配置的装置的结构示意图;
图5是本发明实施例四提供的一种颜色配置的装置的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
以下结合具体附图对本发明的实现进行详细的描述。
实施例一:
图1是本发明实施例一提供的一种颜色配置的方法的流程图,本发明实施例的执行主体为智能设备或者智能设备的功能模块,图1示例的颜色配置的方法具体可以包括步骤S101至S103,详述如下:
S101、若检测到用户界面的背景图片被更换,则确定该用户界面中的文字在更换后的背景图片中对应的背景区域。
应用APP运行在智能设备中,当应用APP的用户主动更换该应用APP中用户界面的背景图片时,或者应用APP对应的服务器更新部署的背景图片时,智能设备可以通过该应用APP检测到用户界面的背景图片被更换。
具体地,智能设备若检测到用户界面的背景图片被更换,则获取更换后的背景图片,并确定在该用户界面中的文字在更换后的背景图片中对应的背景区域。
需要说明的是,用户界面中的文字在用户界面中的布局是固定的,智能设备根据文字的显示位置可以确定出该文字在背景图片中对应的背景区域。
S102、计算背景区域的背景颜色值。
具体地,智能设备根据步骤S101得到的背景区域,计算该背景区域的背景颜色值。
由于背景区域可能由多种颜色组成,因此智能设备计算得到的背景颜色值只需能够标识出该背景区域的整体颜色即可,其具体可以通过获取背景区域的主体颜色,并计算该主题颜色的颜色值得到,也可以通过计算背景区域中各种颜色的颜色值的平均值得到,或者采用其他计算方式得到,此处不做限制。
S103、根据背景区域的背景颜色值设置文字的文字颜色值,使得该文字颜色值对应的颜色与背景颜色值对应的颜色不同。
具体地,智能设备根据步骤S102得到的背景区域的背景颜色值,设置与该背景颜色值不同的文字颜色值,并使用该文字颜色值设置文字的颜色,使得该文字颜色值对应的颜色与背景颜色值对应的颜色能够合理搭配,从而使用户能够清晰的辨认出背景图片上的文字。
本实施例中,智能设备若检测到用户界面的背景图片被更换,则确定该用户界面中的文字在更换后的背景图片中对应的背景区域,通过计算背景区域的背景颜色值,并根据该背景颜色值设置文字的文字颜色值,使得文字颜色值对应的颜色与背景颜色值对应的颜色不同,实现了当背景图片被更换时,文字的颜色能够随着背景颜色的变化自动进行搭配,使得用户不再需要手动调整文字的颜色来搭配背景图片的颜色,从而提高智能化水平,增强用户体验。
实施例二:
图2是本发明实施例二提供的一种颜色配置的方法的流程图,本发明实施例的执行主体为智能设备或者智能设备的功能模块,图2示例的颜色配置的方法具体可以包括步骤S201至S205,详述如下:
S201、若检测到用户界面的背景图片被更换,则确定该用户界面中的文字在更换后的背景图片中对应的背景区域。
应用APP运行在智能设备中,当应用APP的用户主动更换该应用APP中用户界面的背景图片时,或者应用APP对应的服务器更新部署的背景图片时,智能设备可以通过该应用APP检测到用户界面的背景图片被更换。
具体地,智能设备若检测到用户界面的背景图片被更换,则获取更换后的背景图片,并确定在该用户界面中的文字在更换后的背景图片中对应的背景区域。
需要说明的是,用户界面中的文字在用户界面中的布局是固定的,智能设备根据文字的显示位置可以确定出该文字在背景图片中对应的背景区域。
S202、按照预设方式在背景区域中选取评估像素点。
具体地,智能设备根据步骤S201确定的背景区域,按照预设方式在该背景区域中选取评估像素点,评估像素点用于评估该背景区域的颜色。
预设方式可以是预先设定的选取方式,其具体可以是选取背景区域的全部像素点作为评估像素点,也可以是在背景区域中随机选取像素点作为评估像素点,或者还可以是其他选取方式,此处不做限制。
需要说明的是,由于背景图片被更换后,用户界面中的文字的颜色需要被及时更新,以便与背景图片的颜色相匹配,这就要求智能设备能够根据更换后的背景图片的颜色快速确定文字的颜色,因此,一方面需要采用高效的选取评估像素点的预设方式,另一方面还需要保证选取出的评估像素点能够准确的标识更换后的背景图片的颜色。
进一步地,按照预设方式在背景区域中选取评估像素点可以通过步骤S2021至步骤S2022实现,详细说明如下:
S2021、使用A-Star算法计算背景区域的节点线,其中,该节点线为起始像素点与结束像素点之间的最短路径,起始像素点和结束像素点为背景区域的边缘像素点。
A-Star(A*)算法是一种静态路网中求解最短路径最有效的直接搜索方法,也是解决许多搜索问题的有效算法。
A-Star算法的公式表示为f(n)=g(n)+h(n),其中,f(n)是从初始状态经由状态n到目标状态的代价估计,g(n)是在状态空间中从初始状态到状态n的实际代价,h(n)是从状态n到目标状态的最佳路径的估计代价。对于路径搜索问题,状态即为节点,代价即为距离。
A-Star算法保证找到最短路径的关键在于估价函数h(n)的选取。假设以d(n)表示状态n到目标状态的距离,则h(n)的选取可以有如下三种情况:
(1)如果h(n)<=d(n),则搜索的点数多,搜索范围大,效率低,但能得到最优解;
(2)如果h(n)=d(n),即距离估计h(n)等于最短距离,那么搜索将严格沿着最短路径进行,此时的搜索效率是最高的;
(3)如果h(n)>d(n),则搜索的点数少,搜索范围小,效率高,但不能保证得到最优解。
具体地,智能设备使用A-Star算法搜索出从起始像素点与结束像素点之间的最短路径,该最短路径即为背景区域的节点线。
起始像素点和结束像素点为背景区域的边缘像素点,具体地,起始像素点可以是背景区域左下角的最边缘的像素点,或者是该左下角的最边缘的像素点分别向下和向左移动固定像素个数的像素点;结束像素点可以是右上角的最边缘的像素点,或者是该右上角的最边缘的像素点分别向上和向右移动固定像素个数的像素点,该固定个数可以是5个。但并不限于此,起始像素点和结束像素点的位置可以根据实际应用的需要进行选取,此处不做具体限制。
为了更好的理解本发明实施例,下面举例说明使用A-Star算法计算节点线的过程。图3示出了一个使用A-Star算法搜索最短路径的示意图,如图3所示,在该图中包含了start节点、障碍物、end节点,以及A节点至K节点,现需要从start节点寻找一条到end节点的最短路径。
对于探寻的每一步,都会以当前节点为基点,扫描其相邻的八个节点,且只能上下左右移动,每移动到邻近的单元格,即认为行走了一个距离。以start节点为例,从start节点到A节点移动了两个距离即g(A)=2,从A节点到end节点如果忽略障碍则移动了六个距离即h(A)=6,根据公式f(n)=g(n)+h(n)得到f(A)=g(A)+h(A)=2+6=8。同理,可以计算出f(B)=g(B)+h(B)=1+5=6,依次类推,start节点相邻的其它节点的f(n)都可以计算出来,如果把start节点相邻的所有节点进行便利比较,选出f(n)最小的一个节点记为X节点,并设置X节点的父节点为start节点,并以X节点为当前节点,再判断X节点周围的有效节点,再选出f(n)最小的节点,并设置X节点为其父节点,依次类推,就形成了一条从start节点到end节点的节点线。
S2022、将背景区域的节点线包含的像素点作为评估像素点。
具体地,智能设备根据步骤S2021计算得到的节点线,获取并记录该节点线包含的每个像素点在背景区域的位置坐标,将这些像素点作为背景区域的评估像素点。
智能设备可以将每个像素点的位置坐标存入二维数组中保存。
S203、根据评估像素点的像素颜色值,确定背景区域的背景颜色值。
具体地,智能设备根据评估像素点的像素颜色值,确定背景区域的背景颜色值可以通过步骤S2031至步骤S2033实现,详细说明如下:
S2031、获取每个评估像素点的像素颜色值。
智能设备根据步骤S202得到的节点线,获取该节点线包含的每个像素点的像素颜色值。
像素颜色值可以包括像素点的透明度和三原色的RGB值,即R(red)值、G(green)值和B(blue)值。需要说明的是,在以下发明实施例中,如无特别说明,凡涉及到颜色值的地方,所提及的颜色值均包含透明度和RGB值。
具体地,智能设备可以创建背景区域的Bitmap对象,如下:
Bitmap src
=BitmapFactory.decodeResource(getResources(),R.drawable.imgbg);
通过Bitmap对象获取每个像素点的透明度A,以及三原色的R值、G值和B值,其中,(x,y)为步骤S2022中保存的评估像素点的坐标。
pixelColor=src.getPixel(x,y);
A=Color.alpha(pixelColor);
R=Color.red(pixelColor);
G=Color.green(pixelColor);
B=Color.blue(pixelColor)。
S2032、计算每个评估像素点的像素颜色值的平均值。
具体地,智能设备分别计算步骤S2031获取的每个评估像素点的透明度A、R值、G值和B值的平均值。
S2033、将每个评估像素点的像素颜色值的平均值作为背景区域的背景颜色值。
具体地,智能设备将步骤S2032得到的透明度A的平均值,R值的平均值、G值的平均值和B值的平均值作为背景区域的背景颜色值。
S204、判断背景颜色值与背景图片被更换前的原背景颜色值是否相同。
具体地,智能设备若判断步骤S203确定的背景颜色值与背景图片被更换前的原背景颜色值相同,则不需要对文字的颜色进行修改,流程结束。
若背景颜色值与背景图片被更换前的原背景颜色值不相同,则继续执行步骤S205。
S205、根据背景颜色值,从预存的颜色搭配信息中获取与该背景颜色值对应的匹配颜色值,并将该匹配颜色值作为文字的文字颜色值,其中,颜色搭配信息包括不同颜色的颜色值之间的对应关系。
颜色搭配信息包括不同颜色的颜色值之间的对应关系,该颜色搭配信息可以以颜色搭配表的方式预存在智能设备的应用APP中,该颜色搭配表的每条记录包含能够互相搭配的两种颜色的颜色值。例如,白色的R值、G值和B值分别为255、255和255,则与它搭配的颜色可以设置为黑色,其R值、G值和B值分别为0、0和0。
具体地,智能设备根据步骤S203确定的包括透明度和RGB值的背景颜色值,在颜色搭配表中查找与该背景颜色值互相搭配的对应的匹配颜色值,并将该匹配颜色值作为文字的文字颜色值,使该文字颜色值对应的颜色与背景颜色值对应的颜色能够合理搭配,从而使用户能够清晰的辨认出背景图片上的文字。
本实施例中,智能设备若检测到用户界面的背景图片被更换,则确定该用户界面中的文字在更换后的背景图片中对应的背景区域,按照预设方式在背景区域中选取评估像素点,并根据评估像素点的像素颜色值确定背景区域的背景颜色值,然后判断若该背景颜色值与背景图片被更换前的原背景颜色值不相同,则从预存的颜色搭配信息中获取与该背景颜色值对应的匹配颜色值,并将该匹配颜色值作为文字的文字颜色值,使得文字颜色值对应的颜色与背景颜色值对应的颜色不同,实现了当背景图片被更换时,文字的颜色能够随着背景颜色的变化自动进行搭配,使得用户不再需要手动调整文字的颜色来搭配背景图片的颜色,从而提高智能化水平,增强用户体验。同时,在按照预设方式在背景区域中选取评估像素点的过程中,智能设备采用A-Star算法计算背景区域的节点线,将该节点线包含的像素点作为评估像素点,并通过计算评估像素点的像素颜色值的平均值的方式,能够快速准确的确定背景区域的背景颜色值,从而提高整个颜色搭配过程的效率和准确性,进一步增强智能化水平。
实施例三:
图4是本发明实施例三提供的一种颜色配置的装置的结构示意图,为了便于说明,仅示出了与本发明实施例相关的部分。图4示例的一种颜色配置的装置可以是前述实施例一提供的颜色配置的方法的执行主体。图4示例的一种颜色配置的装置包括:检测模块31、计算模块32和设置模块33。各功能模块详细说明如下:
检测模块31,用于若检测到用户界面的背景图片被更换,则确定该用户界面中的文字在更换后的背景图片中对应的背景区域;
计算模块32,用于计算检测模块31确定的背景区域的背景颜色值;
设置模块33,用于根据计算模块32得到的背景颜色值设置文字的文字颜色值,使得该文字颜色值对应的颜色与背景颜色值对应的颜色不同。
本实施例提供的一种颜色配置的装置中各模块实现各自功能的过程,具体可参考前述图1所示实施例的描述,此处不再赘述。
从上述图3示例的一种颜色配置的装置可知,本实施例中,智能设备若检测到用户界面的背景图片被更换,则确定该用户界面中的文字在更换后的背景图片中对应的背景区域,通过计算背景区域的背景颜色值,并根据该背景颜色值设置文字的文字颜色值,使得文字颜色值对应的颜色与背景颜色值对应的颜色不同,实现了当背景图片被更换时,文字的颜色能够随着背景颜色的变化自动进行搭配,使得用户不再需要手动调整文字的颜色来搭配背景图片的颜色,从而提高智能化水平,增强用户体验。
实施例四:
图5是本发明实施例四提供的一种颜色配置的装置的结构示意图,为了便于说明,仅示出了与本发明实施例相关的部分。图5示例的一种颜色配置的装置可以是前述实施例二提供的颜色配置的方法的执行主体。图5示例的一种颜色配置的装置包括:检测模块41、计算模块42和设置模块43。各功能模块详细说明如下:
检测模块41,用于若检测到用户界面的背景图片被更换,则确定该用户界面中的文字在更换后的背景图片中对应的背景区域;
计算模块42,用于计算检测模块41确定的背景区域的背景颜色值;
设置模块43,用于根据计算模块42得到的背景颜色值设置文字的文字颜色值,使得该文字颜色值对应的颜色与背景颜色值对应的颜色不同。
进一步地,计算模块42包括:
选取子模块421,用于按照预设方式在检测模块41确定的背景区域中选取评估像素点;
确定子模块422,用于根据选取子模块421选取的评估像素点的像素颜色值,确定背景区域的背景颜色值。
进一步地,选取子模块421包括:
节点线获取单元4211,用于使用A-Star算法计算检测模块41确定的背景区域的节点线,其中,该节点线为起始像素点与结束像素点之间的最短路径,起始像素点和结束像素点为该背景区域的边缘像素点;
评估像素点获取单元4212,用于将节点线获取单元4211得到的节点线包含的像素点作为评估像素点。
确定子模块422包括:
像素颜色值获取单元4221,用于获取选取子模块421选取的每个评估像素点的像素颜色值;
平均值计算单元4222,用于计算像素颜色值获取单元4221得到的每个评估像素点的像素颜色值的平均值;
背景颜色值获取单元4223,用于将平均值计算单元4222计算出的平均值作为背景区域的背景颜色值。
进一步地,设置模块43包括:
判断子模块431,用于判断背景颜色值获取单元4223得到的背景颜色值与背景图片被更换前的原背景颜色值是否相同;
配置子模块432,用于若判断子模块431的判断结果为不相同,则根据背景颜色值,从预存的颜色搭配信息中获取与该背景颜色值对应的匹配颜色值,并将该匹配颜色值作为文字的文字颜色值,其中,颜色搭配信息包括不同颜色的颜色值之间的对应关系。
本实施例提供的一种颜色配置的装置中各模块实现各自功能的过程,具体可参考前述图2所示实施例的描述,此处不再赘述。
从上述图5示例的一种颜色配置的装置可知,本实施例中,智能设备若检测到用户界面的背景图片被更换,则确定该用户界面中的文字在更换后的背景图片中对应的背景区域,按照预设方式在背景区域中选取评估像素点,并根据评估像素点的像素颜色值确定背景区域的背景颜色值,然后判断若该背景颜色值与背景图片被更换前的原背景颜色值不相同,则从预存的颜色搭配信息中获取与该背景颜色值对应的匹配颜色值,并将该匹配颜色值作为文字的文字颜色值,使得文字颜色值对应的颜色与背景颜色值对应的颜色不同,实现了当背景图片被更换时,文字的颜色能够随着背景颜色的变化自动进行搭配,使得用户不再需要手动调整文字的颜色来搭配背景图片的颜色,从而提高智能化水平,增强用户体验。同时,在按照预设方式在背景区域中选取评估像素点的过程中,智能设备采用A-Star算法计算背景区域的节点线,将该节点线包含的像素点作为评估像素点,并通过计算评估像素点的像素颜色值的平均值的方式,能够快速准确的确定背景区域的背景颜色值,从而提高整个颜色搭配过程的效率和准确性,进一步增强智能化水平。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每一个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同或者相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
值得注意的是,上述装置实施例中,所包括的各个模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能模块的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
本领域普通技术人员可以理解,实现上述各实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,相应的程序可以存储于一计算机可读取存储介质中,所述的存储介质,如ROM/RAM、磁盘或光盘等。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。