簡體   English   中英

按顏色獲得R,G,B的值

[英]Get value of R, G, B by color

我有用戶輸入顏色(例如白色,紅色......),那么如何用用戶給出的顏色獲得R,G,B的值?

我有一個函數(float r,float g,float b)來設置一個節點的顏色。 所以我讓用戶輸入他們想要的顏色名稱,然后我想轉換該顏色名稱以獲得我的函數的r,g,b值。

顏色定義了有限數量的代表基本顏色的枚舉。 此代碼摘錄使用反射從其名稱映射到RGB表示。

除此之外,您還必須維護顏色/ RGB值的映射,或者可能需要一組系統屬性,並使用Color.getColor(String name)

創建一個Map,其中包含所有可選顏色作為字符串及其RGB表示(對於記錄,Color在java.awt包中找到):

Map<String,Color> colorMap = new HashMap<String,Color>();
        colorMap.put("white", new Color(255,255,255));
        colorMap.put("red", new Color(255,0,0));

然后使用用戶輸入的文本在地圖中查找顏色:

String userColor = <whereever you get your string from>;
Color result = colorMap.get(userColor.toLowerCase());

最后,使用具有RGB int值的Color對象來檢索所需的浮點值並將它們傳遞給函數:

yourFunction(Float.valueOf(result.getRed(),Float.valueOf(result.getGreen()),Float.valueOf(result.getBlue()));

如果可能的話,我會建議使用整數而不是浮點數作為RGB,因為在大多數情況下,大多數情況下整數都在0到255之間。

這個網站是一個獲得RGB所需顏色的好地方: http//cloford.com/resources/colours/500col.htm

如果您將顏色作為字符串,則可以在地圖中查找此Color ,這將為您提供紅色,綠色和藍色值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM