私は複雑な問題がありますが、この小さな問題によって解決することができます。私はピクセルごとに動作するカラー化をしたいと思います。HSLカラーで色を塗る方法は?
私は(画像はこの色とこの色に近くにいる他の画素、の多くのいくつかの画素を有する)絵のために定義されベースカラーを持っている:
Hex: #188DD9
HSL: 204° 80% 47%
RGB: 24 141 217
私は私のを知っていますターゲットベースカラーは:
Hex: #23752E
HSL: 128° 54% 30%
RGB: 35 117 46
だから、私はイメージを色付けしたいと思います。
私は、この2つのHSL値に相関があると仮定して、 ピクセル単位で色を付けることができます。
現在、基本色相を(目標色相 - 基本色相)= -76で移動すると、色相が良好であることがわかりました。
この問題を解決するために、彩度と明度の間の接続がどこにあるか教えてください。
ありがとうございました!それは正常に働いた。私は改善を1つだけ行いました。最終的な色(赤または緑または青)に近いいくつかの目標値では、カラー化後に間違った色がありました。改善は次のとおりです。if(S> Sbase)S = Sbase; S 'を計算する前 –
最初に 'if(S'> Smax)S '= Smax;'を使ってみましたか?Smaxは最大有効彩度です(通常は1.0,100,255など)。 Ps。私は長いintまたは浮動小数点を使用して中間の計算を行うことをお勧めします。さもなければ算術オーバーフローによって噛まれるかもしれません。また、intを使用する場合は、除算の前に乗算を行うことを忘れないでください。 –
いいえ、私はそれを試していませんでした。今私は試してみましたが、同じ結果が得られ、あなたのソリューションは論理的です。 :) ありがとうございました! –