1. ホーム
  2. colors

[解決済み] RGBの値がある場合、どのように色合い(シェード)を作成するのですか?

2022-05-11 09:41:49

質問

RGB値が与えられたとき、例えば 168, 0, 255 のようなRGB値がある場合、その色の色合い(明るくする)と影(暗くする)はどのように作成すればよいのでしょうか?

どのように解決するのですか?

このうち いくつかの選択肢の中から があり、シェーディングやティントができます。

  • シェーディングの場合、各成分に1/4、1/2、3/4などを乗算します。 を掛けます。係数が小さいほど、陰影は濃くなります。

  • 色合いについては、(255-前の値)を計算し、それに1/4を掛けます。 1/2、3/4、など。(係数が大きいほど、色合いが薄くなります)、それを以前の値に追加します (各.コンポーネントが 8 ビットの整数であると仮定します)。

色の操作(色合いやその他のシェーディングなど)は リニア RGB . しかし、ドキュメントで指定された RGB カラーや、画像やビデオでエンコードされた RGB カラーは、リニア RGB である可能性は低く、その場合、いわゆる 逆伝達関数 を RGB 色の各成分に適用する必要があります。この関数は、RGBの色空間によって異なります。たとえば、sRGB 色空間 (RGB 色空間が不明な場合に仮定できる) では、この関数は次のようになります。 おおよそ sRGB の各色成分 (0 ~ 1) を 2.2 のべき乗にすることに相当します。(リニア RGB は RGB の色空間ではないことに注意してください)。

Violet Giraffe の「ガンマ補正」についてのコメントも参照してください。