3

rgb(0, 96, 255)わずかに異なる値()で終わることなく、HSLに変換して元に戻すことができるアルゴリズム/実装をまだ見つけていませんrgb(0, 98, 255)。これは、すべてのアルゴリズムが壊れていることを意味します(Wolfram | Alphaを含む)。または、HSLがすべてのRGBカラーを表すことができないことを意味します。

どちらが正しい?

4

1 に答える 1

1

nmは正しい—「HSLはすべてのRGBカラーを表すことができますが、最も近い整数に丸められたHSLはできません。」

私が書いていたカラークラスでやったことは、色を丸められていないHSLとして内部に保存することでした。次に、RGBおよびHSLのgetterメソッドは、呼び出されたときにそれらを丸めます。これにより、RGBカラーでも、不正確な変換を行うことなく、色相や彩度の変更などを行うことができました。

丸められたRGBと丸められたHSLを正確に変換する方法はまだないため、解決策は、丸められたRGBを丸められたHSLとの間で変換しないことです。

于 2012-07-20T01:21:33.853 に答える