Это преобразование точно ВСЛ?


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

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

1 3

1 ответ:

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

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

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