Hi, I noted that the Color conversion of RGB to HSL isn't quite right - in particular the .l() or Lightness is consistently too high.
Fantom Shell v1.0.79 ('?' for help)
fansh> using graphics
Add using: using graphics
fansh> Color("red").l
1.0
Whereas the luminosity of red should half that at 0.5. If using graphics::Color then the hsl of red actually produces white - e.g. hsl(0deg, 100%, 100%).
I know the maths behind RGB to HSL can get a little complicated but it'd be very useful if the formula used could re-visited.
For instance this article suggests luminance may be calculated as follows:
Now calculate the Luminace value by adding the max and min values and divide by 2.
Whereas the current algorithm only takes the maximum value.
andyTue 20 Feb 2024
Yeah that doesn't look right - we'll take a look.
andyTue 19 Mar 2024
Ticket promoted to #2909 and assigned to andy
andyTue 19 Mar 2024
Ticket resolved in 1.0.80
HSL behavior should now match browser implementations.
SlimerDudeWed 20 Mar 2024
Brilliant - thanks Andy!
Could you reference the formulas used in the conversions?
SlimerDude Mon 19 Feb 2024
Hi, I noted that the Color conversion of RGB to HSL isn't quite right - in particular the
.l()
or Lightness is consistently too high.Whereas the luminosity of red should half that at
0.5
. If usinggraphics::Color
then the hsl of red actually produces white - e.g.hsl(0deg, 100%, 100%)
.I know the maths behind RGB to HSL can get a little complicated but it'd be very useful if the formula used could re-visited.
For instance this article suggests luminance may be calculated as follows:
Whereas the current algorithm only takes the maximum value.
andy Tue 20 Feb 2024
Yeah that doesn't look right - we'll take a look.
andy Tue 19 Mar 2024
Ticket promoted to #2909 and assigned to andy
andy Tue 19 Mar 2024
Ticket resolved in 1.0.80
HSL behavior should now match browser implementations.
SlimerDude Wed 20 Mar 2024
Brilliant - thanks Andy!
Could you reference the formulas used in the conversions?