B4J Code Snippet Kelvin2RGB

No need for description. It just convert a Colortemperature Value (Kelvin) into a RGB Value.

B4X:
Sub KelvinToRGB(kelvin As Int) As Int()
    Dim Temperature As Int=  kelvin/100
    Dim rgb(3) As Int
    If Temperature <= 66 Then
        rgb(0) = 255
    Else
        rgb(0) = Temperature - 60
        rgb(0) = 329.698727446 * Power(rgb(0),-0.1332047592)
        If rgb(0) < 0 Then rgb(0) = 0
        If rgb(0) > 255 Then rgb(0) = 255
    End If
    If Temperature <= 66 Then
        rgb(1) = Temperature
        rgb(1) = 99.4708025861 * Logarithm(rgb(1),cE) - 161.1195681661
        If rgb(1) < 0 Then rgb(1) = 0
        If rgb(1) > 255 Then rgb(1) = 255
    Else
        rgb(1) = Temperature - 60
        rgb(1) = 288.1221695283 * Power(rgb(1),-0.0755148492)
        If rgb(1) < 0 Then rgb(1) = 0
        If rgb(1) > 255 Then rgb(1) = 255
    End If
    If Temperature >= 66 Then
        rgb(2) = 255
    Else
        If Temperature <= 19 Then
            rgb(2) = 0
        Else
            rgb(2) = Temperature - 10
            rgb(2) = 138.5177312231 * Logarithm(rgb(2),cE) - 305.0447927307
            If rgb(2) < 0 Then rgb(2) = 0
            If rgb(2) > 255 Then rgb(2) = 255
        End If
    End If
    Return rgb
End Sub
 
Top