2013-11-25 222 views
1

我有如下所示轉換RGB值轉換爲顏色

[1.0, 0.0, 0.0] for Red 
[0.0, 1.0, 0.0] for Green 

所述第一值表示用於紅色的顏色代碼返回十進制值的Java代碼,該第二值表示用於綠色和第三值表示的顏色代碼藍色的顏色代碼。

有沒有什麼辦法可以將這些RGB值轉換成java中相應的顏色?

+2

也許你正在尋找[這個構造函數](http://docs.oracle.com/javase/7/docs/api/java/awt/Color.html#Color%28float,%20float,%20float%29 )? – sgbj

回答

2

有一個example返回依賴於使用反射來獲取顏色名稱顏色名稱(java.awt.Color中)

public static String getNameReflection(Color colorParam) { 
     try { 
      //first read all fields in array 
      Field[] field = Class.forName("java.awt.Color").getDeclaredFields(); 
      for (Field f : field) { 
       String colorName = f.getName(); 
       Class<?> t = f.getType(); 
       if (t == java.awt.Color.class) { 
        Color defined = (Color) f.get(null); 
        if (defined.equals(colorParam)) { 
         System.out.println(colorName); 
         return colorName.toUpperCase(); 
        } 
       } 
      } 
     } catch (Exception e) { 
      System.out.println("Error... " + e.toString()); 
     } 
     return "NO_MATCH"; 
    } 

,並在主

 Color colr = new Color(1.0f, 0.0f, 0.0f); 
     Main m = new Main(); 
     m.getNameReflection(colr); 
    } 

您必須知道:"java.awt.Color"定義了這種顏色:

white 
WHITE 
lightGray 
LIGHT_GRAY 
gray 
GRAY 
darkGray 
DARK_GRAY 
black 
BLACK 
red 
RED 
pink 
PINK 
orange 
ORANGE 
yellow 
YELLOW 
green 
GREEN 
magenta 
MAGENTA 
cyan 
CYAN 
blue 
BLUE 
+0

謝謝,它的工作! – MaheshVarma

+0

@MaheshVarma我實際上是在我的電腦裏做這個答案。巧合 –

+0

很高興知道,一個人正在同一時間在相同的地理位置工作在相同的要求。 @BharathRallapalli – MaheshVarma