Arjan van Wieringen
06/07/2023, 6:38 AMandroidx.ui.graphics
for thisArjan van Wieringen
06/07/2023, 6:41 AMSergey Y.
06/07/2023, 6:50 AMMichael Paus
06/07/2023, 7:05 AMSergey Y.
06/07/2023, 7:08 AMSergey Y.
06/07/2023, 7:11 AMArjan van Wieringen
06/07/2023, 8:17 AMSebastian Schuberth
06/07/2023, 8:25 AMSergey Y.
06/07/2023, 8:46 AMandroid.graphics
package and androidx.*
are not the same. android.graphics
package is part of Android SDK and it only works on Android OS. Androidx is a collection of separate libraries and some of them can work on different platforms.Arjan van Wieringen
06/07/2023, 8:53 AMAlexander Maryanovsky
06/07/2023, 1:43 PMimport androidx.compose.ui.graphics.Color
import kotlin.math.max
import kotlin.math.min
fun Color.toHsl(): FloatArray {
val r = red
val g = green
val b = blue
val max = max(r, max(g, b))
val min = min(r, min(g, b))
val h: Float
val s: Float
val l = (max + min) / 2
if (max == min) {
// achromatic
h = 0f
s = 0f
} else {
val d = max - min
s = if (l > 0.5f) d / (2 - max - min) else d / (max + min)
h = when (max) {
r -> (g - b) / d + (if (g < b) 6 else 0)
g -> (b - r) / d + 2
b -> (r - g) / d + 4
else -> 0f
}
}
val hsl = FloatArray(3)
hsl[0] = h * 60 // converting to degrees
hsl[1] = s
hsl[2] = l
return hsl
}
Alexander Maryanovsky
06/07/2023, 1:43 PMjava.awt.Color.*RGBtoHSB*
Arjan van Wieringen
06/07/2023, 2:29 PMAlexander Maryanovsky
06/07/2023, 3:04 PMAlexander Maryanovsky
06/07/2023, 3:05 PM