RGB和RGBA之间的转换

/**
     * rgb转rgba
     * @param color
     * @param alp
     * @returns {string}
     */
    function rgbToRgba(color,alp){
        var r,g,b;
        var rgbaAttr = color.match(/[\d.]+/g);
        if(rgbaAttr.length >=3){
            var r,g,b;
            r = rgbaAttr[0];
            g = rgbaAttr[1];
            b = rgbaAttr[2];
            return 'rgba('+r+','+g+','+b+','+alp+')';
        }
    }

    /**
     * rgba转rgb
     * @param color
     * @returns {string}
     */
    function rgbaToRgb(color){

        //在CSS 颜色标准 4 中,rgba()是rgb()的别称。在实行第4级标准的浏览器中,它们接受相同的参数,作用效果也相同。
        return color.replace("rgba","rgb");
        

        var rgbaAttr = color.match(/[\d.]+/g);
        if(rgbaAttr.length >=4){
            var r,g,b,alpha,nr,ng,nb;
            r = rgbaAttr[0];
            g = rgbaAttr[1];
            b = rgbaAttr[2];
            alpha = rgbaAttr[3];

            //Color = Color * alpha + bkg * (1 - alpha);
            var bkg ='rgb(255,177,84)';
            var bkgAttr = bkg.match(/[\d.]+/g);
            nr = r*alpha+bkgAttr[0]*(1-alpha);
            ng = g*alpha+bkgAttr[1]*(1-alpha);
            nb = b*alpha+bkgAttr[2]*(1-alpha);

            return 'rgb('+nr+','+ng+','+nb+')';
        }


        return '';
    }

    /**
     * 获取rgba中的透明度
     * @param color
     * @returns {number}
     */
    function getRgbaAlp(color){
        var alp = 1;
        var rgbaReg = /rgba\([\d ]+(?:\,([\d. ]+)){3}\)/;
       if(rgbaReg.test(color)){
           alp = color.replace(rgbaReg,'$1');
        }
        return alp;
    }

 


版权声明:本文为hai2653068原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。