2013-10-18 33 views
0

當使用圖形在一個Java小程序的paint()方法的對象,Java小程序,讓塗料所使用的顏色名稱()

沒有人知道如何使用方法的圖形對象上從而它會返回正在使用的顏色的名稱?

使用g.setColor(Color.red);

然後繪製矩形使用g.getColor

伊夫嘗試()的toString();

但這隻會返回一個像這樣的字符串: 「java.awt.Applet [R:255 G:0 B:0]」 如果可能的

進出口尋找找回 「紅」

+1

可能出現[Java toString to Color]的重複(http://stackoverflow.com/questions/5708830/java-tostring-to-colour) –

+0

有16,777,216種RGB顏色。你期望16,777,216個名字? –

回答

0

如果你真的想這樣做,應該可以做這樣的事情。我會從converting the color from RGB to HSV開始。然後將色調分區。通常紅色爲0度,接着是60爲黃色,120爲綠色,180爲藍色,240爲藍色,300度爲品紅色或紫色,然後回到紅色。您可以使用飽和度來判斷該值是否爲灰度。該值可以告訴你「明亮」,「常規」或「黑暗」。您可能需要特殊處理一些值,例如橙/棕色範圍內的值。還有一些有特殊名稱,如「光不飽和紅」就是粉紅色。

對於它的價值,我發佈了一個Objective-C version here。使用上面鏈接的維基百科文章來轉換爲Java應該相當容易。