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;
    }

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ma_xs

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值