Преобразование HSL точное?

Мне еще предстоит найти алгоритм / реализацию, которая может преобразовывать rgb(0, 96, 255) в HSL и обратно, не получая немного другое значение (rgb(0, 98, 255)). Это означает, что не работают все алгоритмы (включая Wolfram | Alpha) или что HSL не может представлять все цвета RGB.

Что правильно?


person Teddy Cross    schedule 14.07.2012    source источник
comment
Проблема, скорее всего, в том, что преобразование требует операций с плавающей запятой, и вы не можете получить точные результаты с помощью чисел с плавающей запятой.   -  person Shahbaz    schedule 14.07.2012
comment
HSL может представлять любой цвет RGB, но HSL с округлением до ближайшего целого числа не может.   -  person n. 1.8e9-where's-my-share m.    schedule 14.07.2012


Ответы (1)


н.м. правильно - «HSL может представлять любой цвет RGB, но HSL с округлением до ближайшего целого числа не может».

В конечном итоге я сделал с классом цвета, который я писал, внутренне сохранял цвет как неокругленный HSL. Затем методы получения для RGB и HSL просто округляли их при вызове. Это позволило делать такие вещи, как изменение оттенка и насыщенности даже для цветов RGB, без получения неточного преобразования.

По-прежнему нет способа точно преобразовать округленный RGB и округленный HSL, поэтому решение состоит в том, чтобы просто никогда не преобразовывать округленный RGB в / из округленного HSL.

person Teddy Cross    schedule 20.07.2012