Colors 将RGB转换为RGBA

Colors 将RGB转换为RGBA,colors,hex,rgb,rgba,Colors,Hex,Rgb,Rgba,我正在尝试使用HTML5画布,我想从CSS中获得fillStyle的颜色,但也要有一些透明度。当我使用jQuery读取CSS样式时,返回的是rgb值而不是十六进制值 fillColor = $(".myClass").css("background-color"); // return rgb(x, x, x) 一开始它看起来很方便,我不需要再次转换它,但我发现我不能将alpha添加到RGB值,所以我必须将它转换为十六进制,然后将它转换为带有alpha值的RGBA function conve

我正在尝试使用HTML5画布,我想从CSS中获得fillStyle的颜色,但也要有一些透明度。当我使用jQuery读取CSS样式时,返回的是rgb值而不是十六进制值

fillColor = $(".myClass").css("background-color"); // return rgb(x, x, x)
一开始它看起来很方便,我不需要再次转换它,但我发现我不能将alpha添加到RGB值,所以我必须将它转换为十六进制,然后将它转换为带有alpha值的RGBA

function convertHexToRGB(hex)
{
    var red = hex.substr(1, 2), green = hex.substr(3, 2), blue = hex.substr(5, 2), alpha = arguments[1];
    color = "rgba(" + parseInt(red, 16) + "," + parseInt(green, 16) + "," + parseInt(blue, 16) + "," + alpha + ")";
    return color;
}

现在,让我的代码看起来既糟糕又低效,有没有办法将alpha值添加到RGB值中。或者某个将RGB转换为RGBA的函数?

您不能像这样从css中检索不透明度值:

fillOpacity = $(".myClass").css("opacity"); // return 0.x
然后将不透明度值转换为所需的“A”通道:

var alpha = fillOpacity * 255;
然后将其附加到rgb值(整数形式)

编辑:


我应该提到的是,HTML5画布元素可以有效地与位图一起工作,因此,虽然您可以进行一些位和BOB的组合,但没有直接的层概念,因为您不能(据我所知)告诉画布元素为r、g、b、a,因为它下面没有任何东西可以组合。当然,除非您试图将半透明画布放置在某种形式的背景图像上。或者,通过将基础图像与原始CSS颜色混合,以达到图像上半透明层的效果。

这正是我要做的,我有一个覆盖画布,带有半透明填充区域以突出背景图像的特定区域。不透明值仅在画布中使用,不在CSS中使用。无论如何,我需要的是将alpha值添加到现有的RGB值中。不检索alpha值。