Roku:如何将rgba转换为十六进制?

时间:2018-05-23 03:30:24

标签: hex rgba roku brightscript

我有来自服务器的rgba格式的颜色,但我不认为roku可以理解rgba,所以想知道是否有方便的api将rgba转换为roku中的hex?

实施例: (255, 255 , 255, 255) - > 0xFFFFFFFF

由于

2 个答案:

答案 0 :(得分:2)

我不认为roku中有api所以我只是写了一个函数。

// 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

答案 1 :(得分:0)

您还可以使用一个移位,它不会按要求返回十六进制,但会返回可以使用的颜色值

颜色=(r << 24)+(g << 16)+(b << 8)+ a