在网上搜了下, 没合适的, 自己抄录了算法, 进行了修改
<script>
function RGBA2RGB(rgba_color, background_color){
//注:rgba_color的格式为rgba(0,0,0,0.1), background_color的格式为rgb(0,0,0) var bgArray = background_color.split("(")[1].split(")")[0].split(",");
var rgbaArr = rgba_color.split("(")[1].split(")")[0].split(",");
var a = rgbaArr[3];
var r = rgbaArr[0] * (1 - a) + bgArray[0] * a;
var g = rgbaArr[1] * (1 - a) + bgArray[1] * a;
var b = rgbaArr[2] * (1 - a) + bgArray[2] * a;
return "rgb(" + Math.round(r) + "," + Math.round(g) + "," + Math.round(b) +")";
}
var resColor = RGBA2RGB("rgba(59, 104, 183, 0.2)", "rgba(255, 255, 255)")
console.log(resColor)
</script>