Это преобразование точно ВСЛ?
Мне еще предстоит найти алгоритм / реализацию, которая может конвертировать rgb(0, 96, 255)
в HSL и обратно, не получая в итоге немного другого значения (rgb(0, 98, 255)
). Это означает, что все алгоритмы нарушены (включая Wolfram / Alpha)-или что HSL не может представлять каждый цвет RGB.
Что правильно?
1 ответ:
N. m. правильно- " HSL может представлять каждый цвет RGB, но HSL, округленный до ближайшего целого числа, не может."
То, что я в конечном итоге сделал с классом color, который я писал, было внутренним хранением цвета как unrounded HSL. Тогда методы геттера для RGB и HSL просто округляли их при вызове. Это позволило делать такие вещи, как изменение оттенка и насыщенности, даже на цветах RGB, без получения неточного преобразования.
По-прежнему нет способа точно преобразовать округлый RGB и округлый HSL, поэтому решение состоит в том, чтобы просто никогда не преобразовывать округлый RGB в/из округлого HSL.