import java.awt.Color;
import jxl.format.Colour;
/**
*字体颜色转换工具类
* @author tanghui
*
*/
public class ColorUtil {
// 把字符串表达的颜色值转换成java.awt.Color
public static Color parseToColor(String c) {
Color convertedColor = Color.ORANGE;
try {
convertedColor = new Color(Integer.parseInt(c, 16));
} catch (NumberFormatException e) {
e.getStackTrace();
}
return convertedColor;
}
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();
}
public static Colour getColour(final String c) {
Color cl = parseToColor(c);
return getNearestColour(cl);
}
//测试
public static void main(String[] args){
// Color cs = ColorUtil.parseToColor("6026FF");
// System.out.println(cs);
}
}
java 字体颜色转换工具类 ColorUtil
最新推荐文章于 2021-04-26 16:03:10 发布