- From: Romain Menke via GitHub <sysbot+gh@w3.org>
- Date: Tue, 06 Aug 2024 14:09:09 +0000
- To: public-css-archive@w3.org
I also think you analysis is correct :) The flipping of the hue was introduced only for `hsl` if I recall correctly. It was discussed here: https://github.com/w3c/csswg-drafts/issues/9222 As far as I can see `hwb` was not mentioned there. So I think it was an oversight that the algorithm was changed without also considering the effects it would have on conversions to `hwb`. I've tested your suggested fix and it seems fine to me. ----- @squelart This variant is based on the WebKit code, after [your proposed changes would be applied](https://github.com/WebKit/WebKit/pull/31636/files) ```js /** * @param {number} red - Red component 0..1 * @param {number} green - Green component 0..1 * @param {number} blue - Blue component 0..1 * @return {number[]} Array of HWB values: Hue as degrees 0..360, Whiteness and Blackness in reference range [0,100] */ function rgbToHwb(red, green, blue) { var white = Math.min(red, green, blue); var black = 1 - Math.max(red, green, blue); return([rgbToHue(red, green, blue), white*100, black*100]); } /** * @param {number} red - Red component 0..1 * @param {number} green - Green component 0..1 * @param {number} blue - Blue component 0..1 * @return {number} Hue as degrees 0..360 */ function rgbToHue(red, green, blue) { const max = Math.max(red, green, blue); const min = Math.min(red, green, blue); let hue = NaN; const d = max - min; if (d !== 0) { switch (max) { case red: hue = ((green - blue) / d); break; case green: hue = (blue - red) / d + 2; break; case blue: hue = (red - green) / d + 4; } hue = hue * 60; } if (hue >= 360) { hue -= 360; } else if (hue < 0) { hue += 360; } return hue; } ``` -- GitHub Notification of comment by romainmenke Please view or discuss this issue at https://github.com/w3c/csswg-drafts/issues/10695#issuecomment-2271391704 using your GitHub account -- Sent via github-notify-ml as configured in https://github.com/w3c/github-notify-ml-config
Received on Tuesday, 6 August 2024 14:09:10 UTC