RRGGBBAA或者RRGGBB轉換成rgba()

kimingw發表於2018-05-11
//十六進位制顏色值的正規表示式
var reg = /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/;  
/*16進位制顏色轉為RGB格式*/  
var colorRgb = function(color){  
    if(color.length>7){
      var num = color.slice(7,9).toUpperCase();
      var x = opacityColor(num)
      color = color.slice(0,7);
    }
    var sColor =color.toLowerCase();  
    if(sColor && reg.test(sColor)){  
        if(sColor.length === 4){  
            var sColorNew = "#";  
            for(var i=1; i<4; i+=1){  
                sColorNew += sColor.slice(i,i+1).concat(sColor.slice(i,i+1));     
            }  
            sColor = sColorNew;  
        }  
        //處理六位的顏色值
        var sColorChange = [];  
        for(var i=1; i<7; i+=2){  
            sColorChange.push(parseInt("0x"+sColor.slice(i,i+2)));    
        }  
          //轉換為rgb,此時不用傳遞引數
        if(x==undefined){
          return "rgb(" + sColorChange.join(",") + ")";
        }else{
          //轉換為rgba,透明度為傳遞的引數x;
          return "rgba(" + sColorChange.join(",") + ","+x+")"; 
        }
    }else{  
        return sColor;    
    }  
}; 

function opacityColor(num){
  if(num=='FF'){
    return 1
  }else if(num=='FC'){
    return .99
  }else if(num=='FA'){
    return .98
  }else if(num=='F7'){
    return .97
  }else if(num=='F5'){
    return .96
  }else if(num=='F2'){
    return .95
  }else if(num=='F0'){
    return .94
  }else if(num=='ED'){
    return .93
  }else if(num=='EB'){
    return .92
  }else if(num=='E8'){
    return .91
  }else if(num=='E6'){
    return .9
  }else if(num=='E3'){
    return .89
  }else if(num=='E0'){
    return .88
  }else if(num=='DE'){
    return .87
  }else if(num=='DB'){
    return .86
  }else if(num=='D9'){
    return .85
  }else if(num=='D6'){
    return .84
  }else if(num=='D4'){
    return .83
  }else if(num=='D1'){
    return .82
  }else if(num=='CF'){
    return .81
  }else if(num=='CC'){
    return .80
  }else if(num=='C9'){
    return .79
  }else if(num=='C7'){
    return .78
  }else if(num=='C4'){
    return .77
  }else if(num=='C2'){
    return .76
  }else if(num=='BF'){
    return .75
  }else if(num=='BD'){
    return .74
  }else if(num=='BA'){
    return .73
  }else if(num=='B8'){
    return .72
  }else if(num=='B5'){
    return .71
  }else if(num=='B3'){
    return .70
  }else if(num=='B0'){
    return .69
  }else if(num=='AD'){
    return .68
  }else if(num=='AB'){
    return .67
  }else if(num=='A8'){
    return .66
  }else if(num=='A6'){
    return .65
  }else if(num=='A3'){
    return .64
  }else if(num=='A1'){
    return .63
  }else if(num=='9E'){
    return .62
  }else if(num=='9C'){
    return .61
  }else if(num=='99'){
    return .6
  }else if(num=='96'){
    return .59
  }else if(num=='94'){
    return .58
  }else if(num=='91'){
    return .57
  }else if(num=='8F'){
    return .56
  }else if(num=='8C'){
    return .55
  }else if(num=='8A'){
    return .54
  }else if(num=='87'){
    return .53
  }else if(num=='85'){
    return .52
  }else if(num=='82'){
    return .51
  }else if(num=='80'){
    return .5
  }else if(num=='7D'){
    return .49
  }else if(num=='7A'){
    return .48
  }else if(num=='78'){
    return .47
  }else if(num=='75'){
    return .46
  }else if(num=='73'){
    return .45
  }else if(num=='70'){
    return .44
  }else if(num=='6E'){
    return .43
  }else if(num=='6B'){
    return .42
  }else if(num=='69'){
    return .41
  }else if(num=='66'){
    return .4
  }else if(num=='63'){
    return .39
  }else if(num=='61'){
    return .38
  }else if(num=='5E'){
    return .37
  }else if(num=='5C'){
    return .36
  }else if(num=='59'){
    return .35
  }else if(num=='57'){
    return .34
  }else if(num=='54'){
    return .33
  }else if(num=='52'){
    return .32
  }else if(num=='4F'){
    return .31
  }else if(num=='4D'){
    return .3
  }else if(num=='4A'){
    return .29
  }else if(num=='47'){
    return .28
  }else if(num=='45'){
    return .27
  }else if(num=='42'){
    return .26
  }else if(num=='40'){
    return .25
  }else if(num=='3D'){
    return .24
  }else if(num=='3B'){
    return .23
  }else if(num=='38'){
    return .22
  }else if(num=='36'){
    return .21
  }else if(num=='33'){
    return .2
  }else if(num=='30'){
    return .19
  }else if(num=='2E'){
    return .18
  }else if(num=='2B'){
    return .17
  }else if(num=='29'){
    return .16
  }else if(num=='26'){
    return .15
  }else if(num=='24'){
    return .14
  }else if(num=='21'){
    return .13
  }else if(num=='1F'){
    return .12
  }else if(num=='1C'){
    return .11
  }else if(num=='1A'){
    return .1
  }else if(num=='17'){
    return .09
  }else if(num=='14'){
    return .08
  }else if(num=='12'){
    return .07
  }else if(num=='0F'){
    return .06
  }else if(num=='0D'){
    return .05
  }else if(num=='0A'){
    return .04
  }else if(num=='08'){
    return .03
  }else if(num=='05'){
    return .02
  }else if(num=='03'){
    return .01
  }else if(num=='00'){
    return 0
  }
}

  

相關文章