View Raw SPL
/* RGB to composite integer color */
rgb2colorref(r=0, g=0, b=0, a = {})
{
local colorref = 0, vu;
if (argc == 1)
{
if (isarray(r) && numcols(r) == 3)
{
b = col(r, 3);
g = col(r, 2);
r = col(r, 1);
}
else
{
error(sprintf("%s - 3 column series required for single input", __FUNC__));
}
}
if (isempty(a))
{
/* no alpha */
colorref = ((b & 0xFF) << 16) + ((g & 0xFF) << 8) + (r & 0xFF);
vu = "Composite BGR";
}
else
{
colorref = ((a & 0xFF) << 24) + ((b & 0xFF) << 16) + ((g & 0xFF) << 8) + (r & 0xFF);
vu = "Composite ABGR";
}
if (isarray(colorref))
{
setvunits(colorref, vu);
}
return(colorref);
}