将 RGB 颜色值转换为十六进制字符串
在我的Java应用程序中,我能够获得红色,绿色和蓝色的a;我已将这些值存储在三个s中。Color
JButton
int
如何将这些 RGB 值转换为包含等效十六进制表示形式的值?如String
#0033fA
在我的Java应用程序中,我能够获得红色,绿色和蓝色的a;我已将这些值存储在三个s中。Color
JButton
int
如何将这些 RGB 值转换为包含等效十六进制表示形式的值?如String
#0033fA
您可以使用
String hex = String.format("#%02x%02x%02x", r, g, b);
如果您希望生成的十六进制数字大写(vs. ),请使用大写 X。#FFFFFF
#ffffff
一个衬里,但没有所有RGB颜色:String.format
Color your_color = new Color(128,128,128);
String hex = "#"+Integer.toHexString(your_color.getRGB()).substring(2);
如果要切换到大写字母,则可以添加一个。请注意,这对于所有 RGB 颜色都是有效的(如问题中所问的)。.toUpperCase()
当您有 ARGB 颜色时,可以使用:
Color your_color = new Color(128,128,128,128);
String buf = Integer.toHexString(your_color.getRGB());
String hex = "#"+buf.substring(buf.length()-6);
一个衬里理论上也是可能的,但需要调用HexString两次。我对 ARGB 解决方案进行了基准测试,并将其与之进行比较,该解决方案具有更高的性能:String.format()
toHexString