TinyColor icon indicating copy to clipboard operation
TinyColor copied to clipboard

The two HSV values are not equal before and after the tinyColor conversion

Open DangoSky opened this issue 4 years ago • 3 comments

I wrote a demo to reproduce this problem.

https://codepen.io/dangosky/pen/JjRGGbZ

DangoSky avatar Dec 06 '20 06:12 DangoSky

RGB has 3 color channels. each channel has 1 byte stored in memory.

HSL/HSV has 3 channels storing the same information. Each channel is a REAL (not integer) number. If you pass in HSLA and convert to RGB, there will often be rounding that occurs. Converting from HSV to RGB and back will not likely result in the same numbers. Converting to RGB to HSV and back to RGB should produce the same results though, in my experience,

jlove73071 avatar Feb 24 '21 21:02 jlove73071

@DangoSky color.toRgbString() will round the converted value, so the returned value itself may not be accurate.

image

I would suggest not using this library for continuous conversion, as the precision of the return values may have already been rounded.

fa3eng avatar Apr 03 '23 12:04 fa3eng

I meet same problem, and I try to use other library. This library is not suitable for color conversion.

https://codepen.io/meakle/pen/XWPvEEo

fa3eng avatar Apr 03 '23 15:04 fa3eng