本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,特別涉及一種rgb調(diào)色方法和裝置。
背景技術(shù):
從事界面編輯的編程人員,經(jīng)常會(huì)需要對(duì)界面的顏色進(jìn)行調(diào)整。顏色在程序中并非是一個(gè)顏色名稱,而是一組代碼數(shù)值,對(duì)于沒(méi)有一定美工基礎(chǔ)的編程人員來(lái)說(shuō),通常無(wú)法根據(jù)顏色迅速在頭腦中反映出近似的代碼范圍或者根據(jù)代碼直接看出對(duì)應(yīng)的顏色,這時(shí)就需要一些方便快捷的工具來(lái)架起代碼和顏色之間的橋梁。
現(xiàn)有技術(shù)中,通常的做法是使用顏色和代碼的比對(duì)表或是轉(zhuǎn)換器,但這些工具都沒(méi)有動(dòng)態(tài)調(diào)試的功能,編程人員只能一次次地嘗試翻譯對(duì)比各種代碼和顏色,無(wú)法方便快捷的對(duì)r、g、b分別調(diào)整,達(dá)到通過(guò)動(dòng)態(tài)調(diào)色找到需要的顏色和代碼的目的。
技術(shù)實(shí)現(xiàn)要素:
為了減輕用戶理解的顏色和機(jī)器理解的代碼之間動(dòng)態(tài)轉(zhuǎn)換的復(fù)雜度,使用戶迅速直觀的進(jìn)行顏色配色調(diào)整,得到想要的顏色代碼,本發(fā)明提供了一種rgb調(diào)色方法和裝置。
依據(jù)本發(fā)明的一個(gè)方面,本發(fā)明提供了一種rgb調(diào)色方法,包括:
通過(guò)監(jiān)聽鍵盤按鍵的抬起事件,接收用戶輸入的顏色代碼;
解析所述顏色代碼得到對(duì)應(yīng)的r、g、b三個(gè)原色的數(shù)值;
通過(guò)監(jiān)聽鍵盤按鍵的按下和抬起事件,接收用戶對(duì)選定的某一個(gè)原色的數(shù)值的調(diào)整指令,并根據(jù)所述調(diào)整指令調(diào)整該原色的數(shù)值;
實(shí)時(shí)根據(jù)所述三個(gè)原色的數(shù)值調(diào)色出對(duì)應(yīng)的顏色,并生成對(duì)應(yīng)的顏色代 碼,顯示給用戶。
其中,所述接收用戶輸入的顏色代碼包括:
設(shè)置十進(jìn)制顏色代碼輸入框和十六進(jìn)制顏色代碼輸入框,監(jiān)聽所述十進(jìn)制顏色代碼輸入框或所述十六進(jìn)制顏色代碼輸入框中鍵盤按鍵的抬起事件,接收用戶輸入的十進(jìn)制顏色代碼或十六進(jìn)制顏色代碼;
所述實(shí)時(shí)根據(jù)所述三個(gè)原色的數(shù)值調(diào)色出對(duì)應(yīng)的顏色,并生成對(duì)應(yīng)的顏色代碼,顯示給用戶包括:
設(shè)置調(diào)色區(qū)域,實(shí)時(shí)根據(jù)所述三個(gè)原色的數(shù)值在所述調(diào)色區(qū)域中調(diào)色出對(duì)應(yīng)的顏色顯示給用戶;以及實(shí)時(shí)將根據(jù)所述三個(gè)原色的數(shù)值生成的十進(jìn)制顏色代碼和十六進(jìn)制顏色代碼,并分別通過(guò)所述十進(jìn)制顏色代碼輸入框和十六進(jìn)制顏色代碼輸入框顯示給用戶。
其中,所述解析用戶輸入的顏色代碼得到對(duì)應(yīng)的r、g、b三個(gè)原色的數(shù)值包括:
當(dāng)監(jiān)聽到所述十進(jìn)制顏色代碼輸入框中鍵盤按鍵的抬起事件時(shí),將所述十進(jìn)制顏色代碼輸入框中的顏色代碼以逗號(hào)為分隔符拆分成三個(gè)數(shù)值,作為r、g、b三個(gè)原色的數(shù)值;
或者,當(dāng)監(jiān)聽到所述十六進(jìn)制顏色代碼輸入框中鍵盤按鍵的抬起事件時(shí),通過(guò)原色獲取函數(shù)從所述十六進(jìn)制顏色代碼中讀取三個(gè)原色的分量,得到r、g、b三個(gè)原色的數(shù)值。
其中,所述通過(guò)監(jiān)聽鍵盤按鍵的按下和抬起事件,接收用戶對(duì)選定的某一個(gè)原色的數(shù)值的調(diào)整指令包括:
設(shè)置三個(gè)原色數(shù)值輸入框,用于分別顯示r、g、b三個(gè)原色的數(shù)值;
將用戶使用鼠標(biāo)選定的某一個(gè)原色數(shù)值輸入框?qū)?yīng)的原色作為選定原色;
監(jiān)聽被用戶選定的原色數(shù)值輸入框中鍵盤up鍵和down鍵的按下和抬起事件,接收用戶對(duì)選定原色的數(shù)值的調(diào)整指令。
其中,所述根據(jù)所述調(diào)整指令調(diào)整該原色的數(shù)值包括:
當(dāng)監(jiān)聽到鍵盤up鍵的按下事件且所述選定原色的數(shù)值小于255時(shí),將所述選定原色的數(shù)值加1;當(dāng)監(jiān)聽到鍵盤down鍵的按下事件且所述選定原色的數(shù)值大于0時(shí),將所述選定原色的數(shù)值減1;
當(dāng)監(jiān)聽到鍵盤up鍵或down鍵的抬起事件時(shí),將調(diào)整后的所述選定原色的數(shù)值顯示在被用戶選定的原色數(shù)值輸入框中。
依據(jù)本發(fā)明的另一方面,本發(fā)明提供了一種rgb調(diào)色裝置,包括顏色代碼輸入模塊、原色解析模塊、原色調(diào)整模塊和調(diào)色顯示模塊;
所述顏色代碼輸入模塊,用于通過(guò)監(jiān)聽鍵盤按鍵的抬起事件,接收用戶輸入的顏色代碼;
所述原色解析模塊,用于解析所述顏色代碼輸入模塊輸入的顏色代碼得到對(duì)應(yīng)的r、g、b三個(gè)原色的數(shù)值;
所述原色調(diào)整模塊,用于通過(guò)監(jiān)聽鍵盤按鍵的按下和抬起事件,接收用戶對(duì)選定的某一個(gè)原色的數(shù)值的調(diào)整指令,并根據(jù)所述調(diào)整指令調(diào)整該原色的數(shù)值;
所述調(diào)色顯示模塊,用于實(shí)時(shí)根據(jù)三個(gè)原色的數(shù)值調(diào)色出對(duì)應(yīng)的顏色,并生成對(duì)應(yīng)的顏色代碼,顯示給用戶。
其中,所述顏色代碼輸入模塊,具體用于設(shè)置十進(jìn)制顏色代碼輸入框和十六進(jìn)制顏色代碼輸入框,監(jiān)聽所述十進(jìn)制顏色代碼輸入框或所述十六進(jìn)制顏色代碼輸入框中鍵盤按鍵的抬起事件,接收用戶輸入的十進(jìn)制顏色代碼或十六進(jìn)制顏色代碼;
所述調(diào)色顯示模塊,具體用于設(shè)置調(diào)色區(qū)域,實(shí)時(shí)根據(jù)所述三個(gè)原色的數(shù)值在所述調(diào)色區(qū)域中調(diào)色出對(duì)應(yīng)的顏色顯示給用戶;以及實(shí)時(shí)將根據(jù)所述三個(gè)原色的數(shù)值生成的十進(jìn)制顏色代碼和十六進(jìn)制顏色代碼并分別通過(guò)所述十進(jìn)制顏色代碼輸入框和十六進(jìn)制顏色代碼輸入框顯示給用戶。
其中,所述原色解析模塊,具體用于當(dāng)監(jiān)聽到所述十進(jìn)制顏色代碼輸入框中鍵盤按鍵的抬起事件時(shí),將所述十進(jìn)制顏色代碼輸入框中的顏色代碼以逗號(hào)為分隔符拆分成三個(gè)數(shù)值,作為r、g、b三個(gè)原色的數(shù)值;
或者,當(dāng)監(jiān)聽到所述十六進(jìn)制顏色代碼輸入框中鍵盤按鍵的抬起事件時(shí),利通過(guò)原色獲取函數(shù)從所述十六進(jìn)制顏色代碼中讀取三個(gè)原色的分量,得到r、g、b三個(gè)原色的數(shù)值。
其中,所述原色調(diào)整模塊,具體用于設(shè)置三個(gè)原色數(shù)值輸入框,用于分別顯示r、g、b三個(gè)原色的數(shù)值;將用戶使用鼠標(biāo)選定的某一個(gè)原色數(shù)值輸入框?qū)?yīng)的原色作為選定原色,監(jiān)聽被用戶選定的原色數(shù)值輸入框中鍵盤up鍵和down鍵的按下和抬起事件,接收用戶對(duì)選定原色的數(shù)值的調(diào)整指令。
其中,所述原色調(diào)整模塊,還具體用于當(dāng)監(jiān)聽到鍵盤up鍵的按下事件且所述選定原色的數(shù)值小于255時(shí),將所述選定原色的數(shù)值加1;當(dāng)監(jiān)聽到鍵盤down鍵的按下事件且所述選定原色的數(shù)值大于0時(shí),將所述選定原色的數(shù)值減1;當(dāng)監(jiān)聽到鍵盤up鍵或down鍵的抬起事件時(shí),將調(diào)整后的所述選定原色的數(shù)值顯示在被用戶選定的原色數(shù)值輸入框中。
本發(fā)明實(shí)施例的有益效果是:通過(guò)監(jiān)聽鍵盤按鍵的按下和抬起事件,接收用戶增減每種原色的比重的指令,動(dòng)態(tài)生成對(duì)應(yīng)的顏色并得到相應(yīng)的十進(jìn)制顏色代碼和十六進(jìn)制顏色代碼,可以直觀、動(dòng)態(tài)地生成變化的顏色和顏色代碼;調(diào)色過(guò)程中,用戶可以看著變化的顏色調(diào)整原色的比重,迅速直觀地得到需要的顏色,避免機(jī)器式無(wú)意義的色碼翻譯,方便使用,尤其適合對(duì)微調(diào)顏色有需求的場(chǎng)景。
附圖說(shuō)明
圖1為本發(fā)明實(shí)施例提供的一種rgb調(diào)色方法的具體流程圖;
圖2為本發(fā)明實(shí)施例提供的一種rgb調(diào)色裝置的結(jié)構(gòu)示意圖;
圖3為本發(fā)明實(shí)施例提供的一種rgb調(diào)色裝置的顯示界面示意圖;
圖4為本發(fā)明實(shí)施例提供的一種rgb調(diào)色裝置的工作流程示意圖。
具體實(shí)施方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對(duì)本發(fā)明實(shí)施方式作進(jìn)一步地詳細(xì)描述。
圖1為本發(fā)明實(shí)施例提供的一種rgb調(diào)色方法的具體流程圖。如圖1所示,本發(fā)明實(shí)施例提供的rgb調(diào)色方法包括:
步驟s110:通過(guò)監(jiān)聽鍵盤按鍵的抬起事件,接收用戶輸入的顏色代碼。
步驟s120:解析顏色代碼得到對(duì)應(yīng)的r、g、b三個(gè)原色的數(shù)值。
當(dāng)用戶按下一個(gè)按鍵并抬起該按鍵時(shí),讀取用戶已經(jīng)輸入的顏色代碼,如果該顏色代碼符合正確的格式,例如顏色代碼達(dá)到了指定的位數(shù),即可以解析出三個(gè)原色對(duì)應(yīng)的數(shù)值;如果還不滿足正確的格式,例如用戶想要輸入的顏色代碼是64e9cc,目前僅輸入了“64e9”,也可以解析出“64e9”對(duì)應(yīng)的三個(gè)原色的數(shù)值,但這個(gè)數(shù)值并不是用戶需要的,此時(shí)需要繼續(xù)監(jiān)聽按鍵的抬起事件,接收用戶的輸入。當(dāng)然用戶也可以采用復(fù)制粘貼的方式輸入顏色代碼,如果用戶使用鼠標(biāo)進(jìn)行復(fù)制粘貼,在粘貼之后只需要按下并抬起一個(gè)功能鍵,例如enter、ctrl、esc鍵等,在監(jiān)聽到按鍵和抬起的事件之后,即可讀取用戶粘貼的顏色代碼。
步驟s130:通過(guò)監(jiān)聽鍵盤按鍵的按下和抬起事件,接收用戶對(duì)選定的某一個(gè)原色的數(shù)值的調(diào)整指令,并根據(jù)調(diào)整指令調(diào)整該原色的數(shù)值。用戶使用鍵盤的按鍵輸入顏色代碼,
步驟s140:實(shí)時(shí)根據(jù)三個(gè)原色的數(shù)值調(diào)色出對(duì)應(yīng)的顏色,并生成對(duì)應(yīng)的顏色代碼,顯示給用戶。
根據(jù)用戶輸入的顏色代碼,動(dòng)態(tài)解析出三個(gè)原色數(shù)值,通過(guò)監(jiān)聽鍵盤按鍵的按下和抬起事件調(diào)整各原色的數(shù)值,可以實(shí)現(xiàn)對(duì)原色比重的調(diào)整,并且實(shí)時(shí)顯示給用戶對(duì)應(yīng)的顏色和顏色代碼,減輕了用戶理解的顏色和機(jī)器理解的代碼之間動(dòng)態(tài)轉(zhuǎn)換的復(fù)雜度。用戶每按下抬起一次按鍵,原色的數(shù)值就會(huì)變化,顯示給用戶的顏色也會(huì)發(fā)生相應(yīng)的變化,用戶可以連續(xù)的按鍵,觀察顏色的連續(xù)變化,以便在一定范圍內(nèi)對(duì)顏色進(jìn)行微調(diào),使用戶迅速直觀的進(jìn)行顏色配色調(diào)整。
顏色在程序中并非是一個(gè)顏色名稱,而是一組代碼數(shù)值,該代碼可以是十進(jìn)制的代碼也可以是十六進(jìn)制的代碼,為了滿足不同用戶的操作習(xí)慣,在優(yōu)選實(shí)施例中,步驟s110中“通過(guò)監(jiān)聽鍵盤按鍵的抬起事件,接收用戶輸入的顏色代碼”具體包括:設(shè)置十進(jìn)制顏色代碼輸入框和十六進(jìn)制顏色代碼輸入框,監(jiān)聽所述十進(jìn)制顏色代碼輸入框或所述十六進(jìn)制顏色代碼輸入框中鍵盤按鍵的抬起事件,接收用戶輸入的十進(jìn)制顏色代碼或十六進(jìn)制顏色代碼。并且在步驟s140中,通過(guò)該十進(jìn)制顏色代碼輸入框和十六進(jìn)制顏色代碼輸入框,將根據(jù)三個(gè)原色的數(shù)值生成的十進(jìn)制顏色代碼和十六進(jìn)制顏色代碼,實(shí)時(shí)顯示給用戶。用戶可以根據(jù)自己的習(xí)慣選擇輸入十進(jìn)制顏色代碼或者十六進(jìn)制顏色代碼,而且將與調(diào)整后原色的數(shù)值對(duì)應(yīng)的十進(jìn)制顏色代碼和十六進(jìn)制顏色代碼都顯示給用戶,可以使用戶直接得到需要的顏色代碼,便于操作。
進(jìn)一步優(yōu)選的,步驟s120中“解析用戶輸入的顏色代碼得到對(duì)應(yīng)的r、g、b三個(gè)原色的數(shù)值”具體包括:
當(dāng)監(jiān)聽到十進(jìn)制顏色代碼輸入框中鍵盤按鍵的抬起事件時(shí),將十進(jìn)制顏色代碼輸入框中的顏色代碼以逗號(hào)為分隔符拆分成三個(gè)數(shù)值,作為r、g、b三個(gè)原色的數(shù)值;
或者,當(dāng)監(jiān)聽到十六進(jìn)制顏色代碼輸入框中鍵盤按鍵的抬起事件時(shí),通過(guò)原色獲取函數(shù)從十六進(jìn)制顏色代碼中讀取三個(gè)原色的分量,得到r、g、b三個(gè)原色的數(shù)值。同時(shí)根據(jù)十六進(jìn)制顏色代碼在調(diào)色區(qū)域中繪制對(duì)應(yīng)的顏色。
顏色代碼是有一定格式,例如常用的十六進(jìn)制顏色代碼為六位的十六進(jìn)制數(shù),如64e9cc;常用的十進(jìn)制顏色代碼是三個(gè)0~255之間的十進(jìn)制數(shù),用逗號(hào)或其他分隔符分隔,如100,233,204。由于十六進(jìn)制顏色代碼和十進(jìn)制顏色代碼的格式不同,而且機(jī)器通常是根據(jù)十六進(jìn)制顏色代碼進(jìn)行繪制顏色等操作,所以對(duì)二者的處理方式是有差別的。
對(duì)于十進(jìn)制顏色代碼,以逗號(hào)分開的三個(gè)十進(jìn)制數(shù)就分別對(duì)應(yīng)了三個(gè)原色,所以可以將用戶輸入的顏色代碼作為一個(gè)字符串,以逗號(hào)為分隔符,分 成三個(gè)子串,得到的三個(gè)數(shù)值就是三個(gè)原色的數(shù)值。然后再根據(jù)三個(gè)原色的數(shù)值得到機(jī)器可以識(shí)別的顏色代碼,例如根據(jù)三個(gè)原色的數(shù)值構(gòu)造一個(gè)顏色對(duì)象,然后在調(diào)色區(qū)域中繪制對(duì)應(yīng)的顏色。
對(duì)于十六進(jìn)制顏色代碼,由于機(jī)器可以根據(jù)十六進(jìn)制顏色代碼繪制顏色,所以可以不進(jìn)行任何處理,直接使用該代碼在調(diào)色區(qū)域中繪制顏色,同時(shí)通過(guò)原色獲取函數(shù)從該十六進(jìn)制顏色代碼中讀取三個(gè)原色的分量,作為三個(gè)原色的數(shù)值。
在本發(fā)明的另一個(gè)優(yōu)選實(shí)施例中,步驟s130中“通過(guò)監(jiān)聽鍵盤按鍵的按下和抬起事件,接收用戶對(duì)選定的某一個(gè)原色的數(shù)值的調(diào)整指令”具體包括:
設(shè)置三個(gè)原色數(shù)值輸入框,用于分別顯示r、g、b三個(gè)原色的數(shù)值;
將用戶使用鼠標(biāo)選定的某一個(gè)原色數(shù)值輸入框?qū)?yīng)的原色作為選定原色;
監(jiān)聽被用戶選定的原色數(shù)值輸入框中鍵盤up鍵和down鍵的按下和抬起事件,接收用戶對(duì)選定原色的數(shù)值的調(diào)整指令。
進(jìn)一步優(yōu)選的,當(dāng)監(jiān)聽到鍵盤up鍵的按下事件且選定原色的數(shù)值小于255時(shí),將選定原色的數(shù)值加1;當(dāng)監(jiān)聽到鍵盤down鍵的按下事件且選定原色的數(shù)值大于0時(shí),將選定原色的數(shù)值減1;
當(dāng)監(jiān)聽到鍵盤up鍵或down鍵的抬起事件時(shí),將調(diào)整后的選定原色的數(shù)值顯示在被用戶選定的原色數(shù)值輸入框中。
假如有一用戶想要對(duì)某一顏色進(jìn)行微調(diào),g、b原色的數(shù)值保持不變,r原色的數(shù)值從100~150范圍內(nèi)選取一個(gè)最合適的數(shù)值,那么利用現(xiàn)有的調(diào)色方案,需要用戶使用鍵盤輸入r原色的數(shù)值,然后按下確定鍵,得到一個(gè)顏色,然后再輸入下一個(gè)值,重復(fù)這個(gè)過(guò)程50次,對(duì)用戶來(lái)說(shuō)操作十分麻煩,并且不斷的使用鍵盤輸入數(shù)值并點(diǎn)擊確認(rèn)鍵會(huì)分散用戶的注意力,不利于用戶觀察得到的顏色,影響對(duì)顏色的選擇。在本優(yōu)選實(shí)施例中,用戶每按下抬起一次up鍵,被選中原色的數(shù)值就會(huì)加1,顯示給用戶的顏色也會(huì)發(fā)生相 應(yīng)的變化,用戶不必關(guān)注每一時(shí)刻r原色的數(shù)值是多少,只需要連續(xù)按up鍵然后觀察顏色的連續(xù)變化,在得到需要的顏色時(shí),停止按鍵,讀取此時(shí)r原色的數(shù)值,不僅簡(jiǎn)化了用戶的操作,而且使用戶的注意力更多的集中在顏色上,可以迅速直觀的進(jìn)行顏色配色調(diào)整。
圖2為本發(fā)明實(shí)施例提供的一種rgb調(diào)色裝置的結(jié)構(gòu)示意圖。如圖2所示,本發(fā)明實(shí)施例提供的rgb調(diào)色裝置包括顏色代碼輸入模塊210、原色解析模塊220、原色調(diào)整模塊230和調(diào)色顯示模塊240。
顏色代碼輸入模塊210通過(guò)監(jiān)聽鍵盤按鍵的抬起事件,接收用戶輸入的顏色代碼。
原色解析模塊220解析顏色代碼輸入模塊210輸入的顏色代碼得到對(duì)應(yīng)的r、g、b三個(gè)原色的數(shù)值。
原色調(diào)整模塊230通過(guò)監(jiān)聽鍵盤按鍵的按下和抬起事件,接收用戶對(duì)選定的某一個(gè)原色的數(shù)值的調(diào)整指令,并根據(jù)調(diào)整指令調(diào)整該原色的數(shù)值。
調(diào)色顯示模塊240實(shí)時(shí)根據(jù)三個(gè)原色的數(shù)值調(diào)色出對(duì)應(yīng)的顏色,并生成對(duì)應(yīng)的顏色代碼,顯示給用戶。
在一優(yōu)選實(shí)施例中,顏色代碼輸入模塊210設(shè)置十進(jìn)制顏色代碼輸入框和十六進(jìn)制顏色代碼輸入框,監(jiān)聽所述十進(jìn)制顏色代碼輸入框或所述十六進(jìn)制顏色代碼輸入框中鍵盤按鍵的抬起事件,接收用戶輸入的十進(jìn)制顏色代碼或十六進(jìn)制顏色代碼。
調(diào)色顯示模塊240設(shè)置調(diào)色區(qū)域,實(shí)時(shí)根據(jù)rgb三個(gè)原色的數(shù)值在調(diào)色區(qū)域中調(diào)色出對(duì)應(yīng)的顏色顯示給用戶;以及實(shí)時(shí)將根據(jù)rgb三個(gè)原色的數(shù)值生成的十進(jìn)制顏色代碼和十六進(jìn)制顏色代碼通過(guò)十進(jìn)制顏色代碼輸入框和十六進(jìn)制顏色代碼輸入框顯示給用戶。
進(jìn)一步優(yōu)選的,原色解析模塊230當(dāng)監(jiān)聽到十進(jìn)制顏色代碼輸入框中鍵盤按鍵的抬起事件時(shí),將十進(jìn)制顏色代碼輸入框中的顏色代碼以逗號(hào)為分隔符拆分成三個(gè)數(shù)值,作為r、g、b三個(gè)原色的數(shù)值;或者,
當(dāng)監(jiān)聽到十六進(jìn)制顏色代碼輸入框中鍵盤按鍵的抬起事件時(shí),通過(guò)原色 獲取函數(shù)從該十六進(jìn)制顏色代碼中讀取三個(gè)原色的分量,得到r、g、b三個(gè)原色的數(shù)值。
在另一優(yōu)選實(shí)施例中,原色調(diào)整模塊230設(shè)置三個(gè)原色數(shù)值輸入框,用于分別顯示r、g、b三個(gè)原色的數(shù)值;將用戶使用鼠標(biāo)選定的某一個(gè)原色數(shù)值輸入框?qū)?yīng)的原色作為選定原色,監(jiān)聽被用戶選定的原色數(shù)值輸入框中鍵盤up鍵和down鍵的按下和抬起事件,接收用戶對(duì)選定原色的數(shù)值的調(diào)整指令。
進(jìn)一步優(yōu)選的,原色調(diào)整模塊230,還具體用于當(dāng)監(jiān)聽到鍵盤up鍵的按下事件且選定原色的數(shù)值小于255時(shí),將選定原色的數(shù)值加1;當(dāng)監(jiān)聽到鍵盤down鍵的按下事件且選定原色的數(shù)值大于0時(shí),將選定原色的數(shù)值減1;當(dāng)監(jiān)聽到鍵盤up鍵或down鍵的抬起事件時(shí),將調(diào)整后的選定原色的數(shù)值顯示在被用戶選定的原色數(shù)值輸入框中。
本發(fā)明實(shí)施例提供的rgb調(diào)色裝置,使用戶能夠通過(guò)操作鍵盤up鍵和down鍵快速增減每種原色的比重,動(dòng)態(tài)生成對(duì)應(yīng)的顏色并得到相應(yīng)的十進(jìn)制顏色代碼和十六進(jìn)制顏色代碼,可以直觀、動(dòng)態(tài)地生成變化的顏色;調(diào)色過(guò)程中,用戶可以看著變化的顏色調(diào)整原色的比重,迅速直觀地得到需要的顏色,避免機(jī)器式無(wú)意義的色碼翻譯,方便使用,尤其適合對(duì)微調(diào)顏色有需求的場(chǎng)景。
圖3為本發(fā)明實(shí)施例提供的一種rgb調(diào)色裝置的顯示界面示意圖;圖4為本發(fā)明實(shí)施例提供的一種rgb調(diào)色裝置的工作流程示意圖。如圖3、圖4共同所示,本實(shí)施例使用java的swing用戶界面的開發(fā)工具來(lái)實(shí)現(xiàn)該rgb調(diào)色裝置,啟動(dòng)該調(diào)色裝置后,首先構(gòu)造如圖3所示的用戶界面
首先初始化r、g、b三個(gè)原色的數(shù)值為255,分別使用r、g、b三個(gè)變量來(lái)保存。獲取屏幕寬度高度,用于該調(diào)色裝置初始化定位到屏幕右下角,方便使用。設(shè)定調(diào)色裝置寬度高度的變量值,設(shè)置五個(gè)輸入框?qū)ο笞兞浚⒎謩e設(shè)置默認(rèn)值。設(shè)置用于承載提示框和輸入框的面板和用于承載調(diào)色區(qū)域的面板:
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();
新建窗口框?qū)ο螅O(shè)置窗框大小和設(shè)置初始位置,為了便于用戶得知每個(gè)輸入框的功能,可以在每個(gè)輸入框的左側(cè)設(shè)置提示區(qū),并設(shè)置文字、居中和背景色等參數(shù)。設(shè)置提示和輸入框的排列方式,可以是高5個(gè)寬2個(gè),水平間隙1,垂直間隙1,然后將五個(gè)提示框和五個(gè)輸入框放入面板p0。設(shè)置調(diào)色區(qū)域面板360的背景色,默認(rèn)為初始化的r,g,b變量值。將面皮p0和p1添加到窗口框中。
為窗口框添加事件監(jiān)聽,實(shí)現(xiàn)用戶交互功能。給五個(gè)輸入框添加監(jiān)聽方法。
第一行輸入框的事件監(jiān)聽方法:監(jiān)聽鍵盤敲擊觸發(fā)的事件,r的值在0到255之間變化。如果用戶敲擊鍵盤up鍵,則變量r的值加1;如果用戶敲擊鍵盤down鍵,則變量r的值減1。將改變后的值寫在輸入框310中。設(shè)置調(diào)色區(qū)域360顏色,重繪文字框。
按鍵抬起觸發(fā)的事件:將變量r的值寫入輸入框310,設(shè)置調(diào)色區(qū)域360背景色,重繪輸入框。
按鍵按下觸發(fā)的事件:如果r的值變化到了不在0到255之間時(shí),則設(shè)置r的值為當(dāng)前的極值0或255,確保r的值始終設(shè)置在0到255之間。如果r小于255且按下了鍵盤up鍵時(shí),則r加1;如果r大于0且按下了鍵盤down鍵時(shí),則r減1。設(shè)置文本框的r值,設(shè)置調(diào)色區(qū)域360的背景色,重繪輸入框。
第二行輸入框320和第三行輸入框330的事件監(jiān)聽方法與第一行輸入框310同理。
十六進(jìn)制代碼輸入框340的事件方法,因?yàn)槭穷伾a輸入形式的輸入框,僅監(jiān)聽鍵盤彈起事件即可。十六進(jìn)制的顏色代碼有兩種常用的形式,分別為#ffffff以及#fff形式,為了兼容這兩種形式的顏色代碼,當(dāng)檢測(cè)到用戶輸入的是長(zhǎng)度為三位的十六進(jìn)制顏色代碼時(shí),則自動(dòng)將其轉(zhuǎn)化為六位代碼進(jìn)行著色。設(shè)置十六進(jìn)制顏色代碼對(duì)應(yīng)的調(diào)色板顏色,設(shè)置對(duì)應(yīng)的十進(jìn)制r,g,b顏色,重繪輸入框。
十進(jìn)制代碼輸入框350的事件方法,監(jiān)聽鍵盤按鍵的彈起事件,將十進(jìn)制代碼輸入框350內(nèi)的十進(jìn)制顏色代碼,拆分成以逗號(hào)分隔拆分成三種顏色值,并賦值給變量r,g,b,設(shè)置調(diào)色區(qū)域360的背景色,重繪輸入框。
重繪輸入框方法,為了提高輸入體驗(yàn),不對(duì)正在輸入的輸入框進(jìn)行重繪,只重繪其他輸入框。否則按下鍵盤按鍵后,光標(biāo)也會(huì)被重置。
動(dòng)態(tài)重繪調(diào)色區(qū)域360的背景色顏色:
綜上所述,本發(fā)明提供的一種rgb調(diào)色方法和裝置,與現(xiàn)有技術(shù)相比,具有以下有益效果:
本發(fā)明提供的一種rgb調(diào)色方法和裝置,通過(guò)監(jiān)聽鍵盤按鍵的按下和抬起事件,接收用戶增減每種原色的比重的指令,動(dòng)態(tài)生成對(duì)應(yīng)的顏色并得到相應(yīng)的十進(jìn)制顏色代碼和十六進(jìn)制顏色代碼,可以直觀、動(dòng)態(tài)地生成變化的顏色和顏色代碼;調(diào)色過(guò)程中,用戶可以看著變化的顏色調(diào)整原色的比重,迅速直觀地得到需要的顏色,避免機(jī)器式無(wú)意義的色碼翻譯,方便使用,尤其適合對(duì)微調(diào)顏色有需求的場(chǎng)景。
以上所述僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍。凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換、改進(jìn)等,均包含在本發(fā)明的保護(hù)范圍內(nèi)。