public class ColorUtil {
public static Colour getNearestColour(Color awtColor) {
Colour color = null;
Colour[] colors = Colour.getAllColours();
if ((colors != null) && (colors.length > 0)) {
Colour crtColor = null;
int[] rgb = null;
int diff = 0;
int minDiff = 999;
for (int i = 0; i < colors.length; i++) {
crtColor = colors[i];
rgb = new int[3];
rgb[0] = crtColor.getDefaultRGB().getRed();
rgb[1] = crtColor.getDefaultRGB().getGreen();
rgb[2] = crtColor.getDefaultRGB().getBlue();
diff = Math.abs(rgb[0] - awtColor.getRed())
+ Math.abs(rgb[1] - awtColor.getGreen())
+ Math.abs(rgb[2] - awtColor.getBlue());
if (diff < minDiff) {
minDiff = diff;
color = crtColor;
}
}
}
if (color == null)
color = Colour.BLACK;
return color;
}
//Color转换为16进制显示
public static String toHexEncoding(Color color) {
String R, G, B;
StringBuffer sb = new StringBuffer();
R = Integer.toHexString(color.getRed());
G = Integer.toHexString(color.getGreen());
B = Integer.toHexString(color.getBlue());
R = R.length() == 1 ? "0" + R : R;
G = G.length() == 1 ? "0" + G : G;
B = B.length() == 1 ? "0" + B : B;
sb.append("0x");
sb.append(R);
sb.append(G);
sb.append(B);
return sb.toString();
}
//把字符串表达的颜色值转换成java.awt.Color
public static Color parseToColor(final String c) {
Color convertedColor = Color.ORANGE;
try {
convertedColor = new Color(Integer.parseInt(c, 16));
} catch(NumberFormatException e) {
// codes to deal with this exception
}
return convertedColor;
}
public static Colour getColour(final String c) { Color
cl=parseToColor(c);
return getNearestColour(cl);
}
}
16进制 ,Color,Colour转换
最新推荐文章于 2023-06-15 20:09:00 发布