Java 字体颜色转换工具类 ColorUtil

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); 
    
    
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值