Roku: Как конвертировать rgba в hex? - PullRequest
0 голосов
/ 23 мая 2018

У меня есть цвет в формате rgba, поступающий с сервера, но я не думаю, что roku может понимать rgba, поэтому я подумал, есть ли удобный API для преобразования rgba в hex в roku?

Пример: (255, 255 , 255, 255) - > 0xFFFFFFFF

Спасибо

Ответы [ 2 ]

0 голосов
/ 18 июля 2019

Вы также можете использовать сдвиг битов, он не вернет шестнадцатеричный код в соответствии с запросом, но вернет значение цвета, которое можно использовать

color = (r << 24) + (g << 16)+ (б << 8) + а </p>

0 голосов
/ 23 мая 2018

Я не думаю, что в 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
...