import java.awt.Color;
import jxl.format.Colour;
/**
* 将十六进制颜色转换为jxl可用的颜色
* @author liuxc
*/
public class ColourUtil {
public static Colour getNearestColour(String strColor) {
Color cl = Color.decode(strColor);
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] - cl.getRed())
+ Math.abs(rgb[1] - cl.getGreen())
+ Math.abs(rgb[2] - cl.getBlue());
if (diff < minDiff) {
minDiff = diff;
color = crtColor;
}
}
}
if (color == null)
color = Colour.BLACK;
return color;
}
public static void main(String[] args){
System.out.print(getNearestColour("#FFFFFF"));
}
}jxl 自定义背景颜色——十六进制转化为Colour
最新推荐文章于 2021-03-14 20:25:47 发布
本文介绍了一个实用工具类ColourUtil,该类提供了一种将十六进制颜色值转换为jxl库中可用的颜色对象的方法。通过计算十六进制颜色与jxl预定义颜色之间的距离来找到最接近的颜色匹配项。
9769

被折叠的 条评论
为什么被折叠?



