bgrins/TinyColor

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

DangoSky opened this issue · 3 comments

I wrote a demo to reproduce this problem.

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

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,

meakle commented

@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.

meakle commented

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