Forum Discussion

mco_dolo's avatar
mco_dolo
Visitor
8 years ago

How to convert rgba to hex?

I have a color in rgba format coming from the server, but I don't think roku can understand rgba, so was wondering if there was a convenient api to convert rgba to hex?
Example:
(255, 255 , 255, 255) - > 0xFFFFFFFF

Thanks

4 Replies

  • Dunno if there is one, but should be pretty easy to code one up I would think.
  • Yea, I just wrote a function for it


    // Example: If you input 255, 255, 255, 255 as the argument it will return "0xFFFFFFFF"
    function rgbaToHex(r as integer, g as integer, b as integer, a as integer)
        hexArray = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F"]
        hexColor = "0x"
        
        for i = 0 to 3
            colorChannel = invalid
            
            if(i = 0) then
                colorChannel = r
                
            else if(i = 1) then
                colorChannel = g
                
            else if(i=2) then  
                colorChannel = b
                
            else if(i=3) then
                colorChannel = a
            end if
        
            sixteens = int(colorChannel / 16) // How many 16's can go into colorChannel (since hex is base 16)?
            ones = colorChannel mod 16 // How many 1's are in the remainder?
            
            hexColor += hexArray[sixteens] + hexArray[ones]
        end for

        return hexColor
    end function
  • You can use a bitshift

    function rgbToColor(r, g, b, a,LE=false) 
            if LE=true'(LITTLE_ENDIAN)
                return ( (a << 24) + (b << 16) + (g <<  😎 + r )
            else
                return ( (r << 24) + (g << 16) + (b <<  😎 + a )
            end if 

        end function