4

次の問題があります。
私はその色のいくつかの異なる色合いのベースカラーを持っています。

例:

  • ベースカラー:#4085c5
  • シェード:#005cb1

今、私は別の色(たとえば#d60620)を持っていますが、色合いはありません。色から、最初の段落で述べた色と同じような違いがある色合いを計算したいと思います。

最初にRGB要素の差を計算して2番目の色に適用しようとしましたが、期待した結果にはなりませんでした。色をHSVに変換し、彩度の値を読み取り、その差を2番目の色に適用して
みたよりも、結果の色はまだ奇妙でした。

式は次のようなものでした:(HSV(BaseColor)[S]-HSV(Shade)[S])+ HSV(SecondColor)[H]

この問題をどのように解決できるか知っている人はいますか?私は何か間違ったことをしていることは知っていますが、何が起こっているのかわかりません。:)

4

2 に答える 2

4

色を暗くするには、次の 2 つの方法があります。

  • R、G、Bから同じ量を引きます。これにより彩度が上がります。明らかに、最小の R、G、B 値に等しいマウントのみを差し引くことができます。
  • R、G、B に 1.0 未満の値を掛けます。これにより、彩度は多かれ少なかれそのままになります。

同様に、色を明るくする方法は 2 つあります。

  • R、G、B に同量を追加します。これにより、彩度が低下します。
  • R、G、B に 1.0 より大きい値を掛けます。これにより、色の鮮やかさが増し、見かけの彩度が上がります。

あなたの例は両方を行ったようです - 各値から 0x40 を減算し、1.33 を掛けます。

2 番目の色を使用して、それぞれから 06 を差し引くと #d0000a になりますが、これでは十分な暗さではありません。これに 0.735 を掛けると、#990013 になります。

ここに画像の説明を入力

于 2012-10-07T03:34:50.037 に答える
1

最初の 2 つの色は両方とも「H」(色相) 値が 209 で、「S」と「V」の値が異なります。

この共通の色相は、2 番目の色を最初の色の「色合い」として定義するものです。

3 番目の色の別の色合いを見つけるには、RGB から HSV への変換を使用してその色相を見つけ、必要に応じて S 値と V 値を変更してから、RGB に変換し直します。

于 2012-10-05T17:55:42.117 に答える