将RGB转换为RGBA
我正在尝试使用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;
}
现在,让我的代码看起来很臭,效率低下,有没有办法给RGB值添加一个alpha值。 或者一些将RGB转换为RGBA的功能?
难道你不只是像这样从你的CSS中检索不透明度值:
fillOpacity = $(".myClass").css("opacity"); // return 0.x
然后将不透明度值转换为您需要的'A'频道:
var alpha = fillOpacity * 255;
然后追加到你的rgb值(int形式)?
编辑:
我应该提到,HTML5 canvas元素可以有效地与位图协同工作,所以虽然你可以做一些组合位和bobs,所以没有直接的图层概念,因为你不能(据我所知)告诉一个画布元素是r,g,b,a,因为没有什么可以与它结合。 除非你正试图在某种形式的背景图像上放置半透明画布。 或者,通过比方说,将原始CSS颜色与基本图像进行多重混合来实现半透明图层对图像的影响。
链接地址: http://www.djcxy.com/p/87539.html上一篇: Convert RGB to RGBA