一种RGB调色方法和装置与流程

文档序号:11276014阅读:528来源:国知局
一种RGB调色方法和装置与流程

本发明涉及计算机技术领域,特别涉及一种rgb调色方法和装置。



背景技术:

从事界面编辑的编程人员,经常会需要对界面的颜色进行调整。颜色在程序中并非是一个颜色名称,而是一组代码数值,对于没有一定美工基础的编程人员来说,通常无法根据颜色迅速在头脑中反映出近似的代码范围或者根据代码直接看出对应的颜色,这时就需要一些方便快捷的工具来架起代码和颜色之间的桥梁。

现有技术中,通常的做法是使用颜色和代码的比对表或是转换器,但这些工具都没有动态调试的功能,编程人员只能一次次地尝试翻译对比各种代码和颜色,无法方便快捷的对r、g、b分别调整,达到通过动态调色找到需要的颜色和代码的目的。



技术实现要素:

为了减轻用户理解的颜色和机器理解的代码之间动态转换的复杂度,使用户迅速直观的进行颜色配色调整,得到想要的颜色代码,本发明提供了一种rgb调色方法和装置。

依据本发明的一个方面,本发明提供了一种rgb调色方法,包括:

通过监听键盘按键的抬起事件,接收用户输入的颜色代码;

解析所述颜色代码得到对应的r、g、b三个原色的数值;

通过监听键盘按键的按下和抬起事件,接收用户对选定的某一个原色的数值的调整指令,并根据所述调整指令调整该原色的数值;

实时根据所述三个原色的数值调色出对应的颜色,并生成对应的颜色代 码,显示给用户。

其中,所述接收用户输入的颜色代码包括:

设置十进制颜色代码输入框和十六进制颜色代码输入框,监听所述十进制颜色代码输入框或所述十六进制颜色代码输入框中键盘按键的抬起事件,接收用户输入的十进制颜色代码或十六进制颜色代码;

所述实时根据所述三个原色的数值调色出对应的颜色,并生成对应的颜色代码,显示给用户包括:

设置调色区域,实时根据所述三个原色的数值在所述调色区域中调色出对应的颜色显示给用户;以及实时将根据所述三个原色的数值生成的十进制颜色代码和十六进制颜色代码,并分别通过所述十进制颜色代码输入框和十六进制颜色代码输入框显示给用户。

其中,所述解析用户输入的颜色代码得到对应的r、g、b三个原色的数值包括:

当监听到所述十进制颜色代码输入框中键盘按键的抬起事件时,将所述十进制颜色代码输入框中的颜色代码以逗号为分隔符拆分成三个数值,作为r、g、b三个原色的数值;

或者,当监听到所述十六进制颜色代码输入框中键盘按键的抬起事件时,通过原色获取函数从所述十六进制颜色代码中读取三个原色的分量,得到r、g、b三个原色的数值。

其中,所述通过监听键盘按键的按下和抬起事件,接收用户对选定的某一个原色的数值的调整指令包括:

设置三个原色数值输入框,用于分别显示r、g、b三个原色的数值;

将用户使用鼠标选定的某一个原色数值输入框对应的原色作为选定原色;

监听被用户选定的原色数值输入框中键盘up键和down键的按下和抬起事件,接收用户对选定原色的数值的调整指令。

其中,所述根据所述调整指令调整该原色的数值包括:

当监听到键盘up键的按下事件且所述选定原色的数值小于255时,将所述选定原色的数值加1;当监听到键盘down键的按下事件且所述选定原色的数值大于0时,将所述选定原色的数值减1;

当监听到键盘up键或down键的抬起事件时,将调整后的所述选定原色的数值显示在被用户选定的原色数值输入框中。

依据本发明的另一方面,本发明提供了一种rgb调色装置,包括颜色代码输入模块、原色解析模块、原色调整模块和调色显示模块;

所述颜色代码输入模块,用于通过监听键盘按键的抬起事件,接收用户输入的颜色代码;

所述原色解析模块,用于解析所述颜色代码输入模块输入的颜色代码得到对应的r、g、b三个原色的数值;

所述原色调整模块,用于通过监听键盘按键的按下和抬起事件,接收用户对选定的某一个原色的数值的调整指令,并根据所述调整指令调整该原色的数值;

所述调色显示模块,用于实时根据三个原色的数值调色出对应的颜色,并生成对应的颜色代码,显示给用户。

其中,所述颜色代码输入模块,具体用于设置十进制颜色代码输入框和十六进制颜色代码输入框,监听所述十进制颜色代码输入框或所述十六进制颜色代码输入框中键盘按键的抬起事件,接收用户输入的十进制颜色代码或十六进制颜色代码;

所述调色显示模块,具体用于设置调色区域,实时根据所述三个原色的数值在所述调色区域中调色出对应的颜色显示给用户;以及实时将根据所述三个原色的数值生成的十进制颜色代码和十六进制颜色代码并分别通过所述十进制颜色代码输入框和十六进制颜色代码输入框显示给用户。

其中,所述原色解析模块,具体用于当监听到所述十进制颜色代码输入框中键盘按键的抬起事件时,将所述十进制颜色代码输入框中的颜色代码以逗号为分隔符拆分成三个数值,作为r、g、b三个原色的数值;

或者,当监听到所述十六进制颜色代码输入框中键盘按键的抬起事件时,利通过原色获取函数从所述十六进制颜色代码中读取三个原色的分量,得到r、g、b三个原色的数值。

其中,所述原色调整模块,具体用于设置三个原色数值输入框,用于分别显示r、g、b三个原色的数值;将用户使用鼠标选定的某一个原色数值输入框对应的原色作为选定原色,监听被用户选定的原色数值输入框中键盘up键和down键的按下和抬起事件,接收用户对选定原色的数值的调整指令。

其中,所述原色调整模块,还具体用于当监听到键盘up键的按下事件且所述选定原色的数值小于255时,将所述选定原色的数值加1;当监听到键盘down键的按下事件且所述选定原色的数值大于0时,将所述选定原色的数值减1;当监听到键盘up键或down键的抬起事件时,将调整后的所述选定原色的数值显示在被用户选定的原色数值输入框中。

本发明实施例的有益效果是:通过监听键盘按键的按下和抬起事件,接收用户增减每种原色的比重的指令,动态生成对应的颜色并得到相应的十进制颜色代码和十六进制颜色代码,可以直观、动态地生成变化的颜色和颜色代码;调色过程中,用户可以看着变化的颜色调整原色的比重,迅速直观地得到需要的颜色,避免机器式无意义的色码翻译,方便使用,尤其适合对微调颜色有需求的场景。

附图说明

图1为本发明实施例提供的一种rgb调色方法的具体流程图;

图2为本发明实施例提供的一种rgb调色装置的结构示意图;

图3为本发明实施例提供的一种rgb调色装置的显示界面示意图;

图4为本发明实施例提供的一种rgb调色装置的工作流程示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。

图1为本发明实施例提供的一种rgb调色方法的具体流程图。如图1所示,本发明实施例提供的rgb调色方法包括:

步骤s110:通过监听键盘按键的抬起事件,接收用户输入的颜色代码。

步骤s120:解析颜色代码得到对应的r、g、b三个原色的数值。

当用户按下一个按键并抬起该按键时,读取用户已经输入的颜色代码,如果该颜色代码符合正确的格式,例如颜色代码达到了指定的位数,即可以解析出三个原色对应的数值;如果还不满足正确的格式,例如用户想要输入的颜色代码是64e9cc,目前仅输入了“64e9”,也可以解析出“64e9”对应的三个原色的数值,但这个数值并不是用户需要的,此时需要继续监听按键的抬起事件,接收用户的输入。当然用户也可以采用复制粘贴的方式输入颜色代码,如果用户使用鼠标进行复制粘贴,在粘贴之后只需要按下并抬起一个功能键,例如enter、ctrl、esc键等,在监听到按键和抬起的事件之后,即可读取用户粘贴的颜色代码。

步骤s130:通过监听键盘按键的按下和抬起事件,接收用户对选定的某一个原色的数值的调整指令,并根据调整指令调整该原色的数值。用户使用键盘的按键输入颜色代码,

步骤s140:实时根据三个原色的数值调色出对应的颜色,并生成对应的颜色代码,显示给用户。

根据用户输入的颜色代码,动态解析出三个原色数值,通过监听键盘按键的按下和抬起事件调整各原色的数值,可以实现对原色比重的调整,并且实时显示给用户对应的颜色和颜色代码,减轻了用户理解的颜色和机器理解的代码之间动态转换的复杂度。用户每按下抬起一次按键,原色的数值就会变化,显示给用户的颜色也会发生相应的变化,用户可以连续的按键,观察颜色的连续变化,以便在一定范围内对颜色进行微调,使用户迅速直观的进行颜色配色调整。

颜色在程序中并非是一个颜色名称,而是一组代码数值,该代码可以是十进制的代码也可以是十六进制的代码,为了满足不同用户的操作习惯,在优选实施例中,步骤s110中“通过监听键盘按键的抬起事件,接收用户输入的颜色代码”具体包括:设置十进制颜色代码输入框和十六进制颜色代码输入框,监听所述十进制颜色代码输入框或所述十六进制颜色代码输入框中键盘按键的抬起事件,接收用户输入的十进制颜色代码或十六进制颜色代码。并且在步骤s140中,通过该十进制颜色代码输入框和十六进制颜色代码输入框,将根据三个原色的数值生成的十进制颜色代码和十六进制颜色代码,实时显示给用户。用户可以根据自己的习惯选择输入十进制颜色代码或者十六进制颜色代码,而且将与调整后原色的数值对应的十进制颜色代码和十六进制颜色代码都显示给用户,可以使用户直接得到需要的颜色代码,便于操作。

进一步优选的,步骤s120中“解析用户输入的颜色代码得到对应的r、g、b三个原色的数值”具体包括:

当监听到十进制颜色代码输入框中键盘按键的抬起事件时,将十进制颜色代码输入框中的颜色代码以逗号为分隔符拆分成三个数值,作为r、g、b三个原色的数值;

或者,当监听到十六进制颜色代码输入框中键盘按键的抬起事件时,通过原色获取函数从十六进制颜色代码中读取三个原色的分量,得到r、g、b三个原色的数值。同时根据十六进制颜色代码在调色区域中绘制对应的颜色。

颜色代码是有一定格式,例如常用的十六进制颜色代码为六位的十六进制数,如64e9cc;常用的十进制颜色代码是三个0~255之间的十进制数,用逗号或其他分隔符分隔,如100,233,204。由于十六进制颜色代码和十进制颜色代码的格式不同,而且机器通常是根据十六进制颜色代码进行绘制颜色等操作,所以对二者的处理方式是有差别的。

对于十进制颜色代码,以逗号分开的三个十进制数就分别对应了三个原色,所以可以将用户输入的颜色代码作为一个字符串,以逗号为分隔符,分 成三个子串,得到的三个数值就是三个原色的数值。然后再根据三个原色的数值得到机器可以识别的颜色代码,例如根据三个原色的数值构造一个颜色对象,然后在调色区域中绘制对应的颜色。

对于十六进制颜色代码,由于机器可以根据十六进制颜色代码绘制颜色,所以可以不进行任何处理,直接使用该代码在调色区域中绘制颜色,同时通过原色获取函数从该十六进制颜色代码中读取三个原色的分量,作为三个原色的数值。

在本发明的另一个优选实施例中,步骤s130中“通过监听键盘按键的按下和抬起事件,接收用户对选定的某一个原色的数值的调整指令”具体包括:

设置三个原色数值输入框,用于分别显示r、g、b三个原色的数值;

将用户使用鼠标选定的某一个原色数值输入框对应的原色作为选定原色;

监听被用户选定的原色数值输入框中键盘up键和down键的按下和抬起事件,接收用户对选定原色的数值的调整指令。

进一步优选的,当监听到键盘up键的按下事件且选定原色的数值小于255时,将选定原色的数值加1;当监听到键盘down键的按下事件且选定原色的数值大于0时,将选定原色的数值减1;

当监听到键盘up键或down键的抬起事件时,将调整后的选定原色的数值显示在被用户选定的原色数值输入框中。

假如有一用户想要对某一颜色进行微调,g、b原色的数值保持不变,r原色的数值从100~150范围内选取一个最合适的数值,那么利用现有的调色方案,需要用户使用键盘输入r原色的数值,然后按下确定键,得到一个颜色,然后再输入下一个值,重复这个过程50次,对用户来说操作十分麻烦,并且不断的使用键盘输入数值并点击确认键会分散用户的注意力,不利于用户观察得到的颜色,影响对颜色的选择。在本优选实施例中,用户每按下抬起一次up键,被选中原色的数值就会加1,显示给用户的颜色也会发生相 应的变化,用户不必关注每一时刻r原色的数值是多少,只需要连续按up键然后观察颜色的连续变化,在得到需要的颜色时,停止按键,读取此时r原色的数值,不仅简化了用户的操作,而且使用户的注意力更多的集中在颜色上,可以迅速直观的进行颜色配色调整。

图2为本发明实施例提供的一种rgb调色装置的结构示意图。如图2所示,本发明实施例提供的rgb调色装置包括颜色代码输入模块210、原色解析模块220、原色调整模块230和调色显示模块240。

颜色代码输入模块210通过监听键盘按键的抬起事件,接收用户输入的颜色代码。

原色解析模块220解析颜色代码输入模块210输入的颜色代码得到对应的r、g、b三个原色的数值。

原色调整模块230通过监听键盘按键的按下和抬起事件,接收用户对选定的某一个原色的数值的调整指令,并根据调整指令调整该原色的数值。

调色显示模块240实时根据三个原色的数值调色出对应的颜色,并生成对应的颜色代码,显示给用户。

在一优选实施例中,颜色代码输入模块210设置十进制颜色代码输入框和十六进制颜色代码输入框,监听所述十进制颜色代码输入框或所述十六进制颜色代码输入框中键盘按键的抬起事件,接收用户输入的十进制颜色代码或十六进制颜色代码。

调色显示模块240设置调色区域,实时根据rgb三个原色的数值在调色区域中调色出对应的颜色显示给用户;以及实时将根据rgb三个原色的数值生成的十进制颜色代码和十六进制颜色代码通过十进制颜色代码输入框和十六进制颜色代码输入框显示给用户。

进一步优选的,原色解析模块230当监听到十进制颜色代码输入框中键盘按键的抬起事件时,将十进制颜色代码输入框中的颜色代码以逗号为分隔符拆分成三个数值,作为r、g、b三个原色的数值;或者,

当监听到十六进制颜色代码输入框中键盘按键的抬起事件时,通过原色 获取函数从该十六进制颜色代码中读取三个原色的分量,得到r、g、b三个原色的数值。

在另一优选实施例中,原色调整模块230设置三个原色数值输入框,用于分别显示r、g、b三个原色的数值;将用户使用鼠标选定的某一个原色数值输入框对应的原色作为选定原色,监听被用户选定的原色数值输入框中键盘up键和down键的按下和抬起事件,接收用户对选定原色的数值的调整指令。

进一步优选的,原色调整模块230,还具体用于当监听到键盘up键的按下事件且选定原色的数值小于255时,将选定原色的数值加1;当监听到键盘down键的按下事件且选定原色的数值大于0时,将选定原色的数值减1;当监听到键盘up键或down键的抬起事件时,将调整后的选定原色的数值显示在被用户选定的原色数值输入框中。

本发明实施例提供的rgb调色装置,使用户能够通过操作键盘up键和down键快速增减每种原色的比重,动态生成对应的颜色并得到相应的十进制颜色代码和十六进制颜色代码,可以直观、动态地生成变化的颜色;调色过程中,用户可以看着变化的颜色调整原色的比重,迅速直观地得到需要的颜色,避免机器式无意义的色码翻译,方便使用,尤其适合对微调颜色有需求的场景。

图3为本发明实施例提供的一种rgb调色装置的显示界面示意图;图4为本发明实施例提供的一种rgb调色装置的工作流程示意图。如图3、图4共同所示,本实施例使用java的swing用户界面的开发工具来实现该rgb调色装置,启动该调色装置后,首先构造如图3所示的用户界面

首先初始化r、g、b三个原色的数值为255,分别使用r、g、b三个变量来保存。获取屏幕宽度高度,用于该调色装置初始化定位到屏幕右下角,方便使用。设定调色装置宽度高度的变量值,设置五个输入框对象变量,并分别设置默认值。设置用于承载提示框和输入框的面板和用于承载调色区域的面板:

publicclasscolortool{

privatestaticintr=255,g=255,b=255;

privatestaticintscreenwidth=(int)toolkit.getdefaulttoolkit().getscreensize().getwidth();

privatestaticintscreenheight=(int)toolkit.getdefaulttoolkit().getscreensize().getheight();

privatestaticintsoftwarewidth=300;

privatestaticintsoftwareheight=200;

privatestatictextfieldtf1=newtextfield("255",8);

privatestatictextfieldtf2=newtextfield("255",8);

privatestatictextfieldtf3=newtextfield("255",8);

privatestatictextfieldtf4=newtextfield("ffffff",8);

privatestatictextfieldtf5=newtextfield("255,255,255",8);

privatestaticfinalpanelp0=newpanel();

privatestaticfinalpanelp1=newpanel();

新建窗口框对象,设置窗框大小和设置初始位置,为了便于用户得知每个输入框的功能,可以在每个输入框的左侧设置提示区,并设置文字、居中和背景色等参数。设置提示和输入框的排列方式,可以是高5个宽2个,水平间隙1,垂直间隙1,然后将五个提示框和五个输入框放入面板p0。设置调色区域面板360的背景色,默认为初始化的r,g,b变量值。将面皮p0和p1添加到窗口框中。

为窗口框添加事件监听,实现用户交互功能。给五个输入框添加监听方法。

第一行输入框的事件监听方法:监听键盘敲击触发的事件,r的值在0到255之间变化。如果用户敲击键盘up键,则变量r的值加1;如果用户敲击键盘down键,则变量r的值减1。将改变后的值写在输入框310中。设置调色区域360颜色,重绘文字框。

按键抬起触发的事件:将变量r的值写入输入框310,设置调色区域360背景色,重绘输入框。

按键按下触发的事件:如果r的值变化到了不在0到255之间时,则设置r的值为当前的极值0或255,确保r的值始终设置在0到255之间。如果r小于255且按下了键盘up键时,则r加1;如果r大于0且按下了键盘down键时,则r减1。设置文本框的r值,设置调色区域360的背景色,重绘输入框。

第二行输入框320和第三行输入框330的事件监听方法与第一行输入框310同理。

十六进制代码输入框340的事件方法,因为是颜色代码输入形式的输入框,仅监听键盘弹起事件即可。十六进制的颜色代码有两种常用的形式,分别为#ffffff以及#fff形式,为了兼容这两种形式的颜色代码,当检测到用户输入的是长度为三位的十六进制颜色代码时,则自动将其转化为六位代码进行着色。设置十六进制颜色代码对应的调色板颜色,设置对应的十进制r,g,b颜色,重绘输入框。

十进制代码输入框350的事件方法,监听键盘按键的弹起事件,将十进制代码输入框350内的十进制颜色代码,拆分成以逗号分隔拆分成三种颜色值,并赋值给变量r,g,b,设置调色区域360的背景色,重绘输入框。

重绘输入框方法,为了提高输入体验,不对正在输入的输入框进行重绘,只重绘其他输入框。否则按下键盘按键后,光标也会被重置。

动态重绘调色区域360的背景色颜色:

综上所述,本发明提供的一种rgb调色方法和装置,与现有技术相比,具有以下有益效果:

本发明提供的一种rgb调色方法和装置,通过监听键盘按键的按下和抬起事件,接收用户增减每种原色的比重的指令,动态生成对应的颜色并得到相应的十进制颜色代码和十六进制颜色代码,可以直观、动态地生成变化的颜色和颜色代码;调色过程中,用户可以看着变化的颜色调整原色的比重,迅速直观地得到需要的颜色,避免机器式无意义的色码翻译,方便使用,尤其适合对微调颜色有需求的场景。

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1