RGBの冷たい色と暖かい色の範囲( http://www.diy-bathroom-remodel.com/images/color_wheel.gif )は何ですか?
リンクした画像を「暖かい」と「冷たい」の参考にすると、次のようになります。
したがって、Rが多いほど色は暖かくなり、Bが多いほど色は冷たくなります。 Gは、ターコイズ、グリーン、イエローの色合いを案内し、それぞれがますます暖かくなります。 Gがゼロの場合、RとBが変化すると、円の左下の対角線に移動します。 Gが255に近づくと、RとBが変化したときに、右上の対角線を越えます。
ただし、隣接する暖色と寒色では、緑の量が異なります。対角線のすぐ下の赤は、そのすぐ上の赤よりも緑が少なくなっています。対角線のすぐ下の青は、そのすぐ上の青よりも緑が少なくなっています。このカラーホイールは、特にスペクトルの青い端では、RGB空間をそれほどうまく表現していないように見えます。
最終的に、暖かく、冷たく感じるものは、モニターの設定と光の状態によって異なります。それの多くはあなたの知覚と認識でもあります-あなたが思うものは暖かいか冷たいかです。画像では、色のコントラストが判断に影響します。明らかに涼しい色の隣の「中間」の色は暖かく見えますが、同じ色が明らかに暖かい色の隣にある場合、それは涼しく見えます。このカラーホイールを見てください:
ここでは、すべての24ビットカラー(R、G、およびBのそれぞれに8ビット)が表示され、上、右、下、および左の色のRGB値が表示されます。私の目には、「暖かい」よりも「冷たい」色の方が多いです。これが、クールでウォームな色として知覚するRGB値を決定するのに役立つことを願っています。
ボーナス:上の画像では、色相、彩度、明度(HSV)カラーモデルで表現された色も確認できます。色相は基本的に色をエンコードします。彩度は、色がどれだけ「フル」であるかをエンコードします。彩度が低いほど、色はより「暗く」なります。白い。値はそれがどれだけ暗いかをエンコードします–値が小さいほど黒くなり、彩度の白も灰色になります。色相は0から360になり、円の角度に対応します。0は完全に赤、90は一種のネオングリーン、180は明るい青、270は青紫、360は再び赤に戻ります。 SとVは0から100になり、正確な色合いに影響します。これらの例はS = V = 100の場合です。
私の目には、0-80と330-360の範囲のH値は暖かく、H> 80とH <330は(およそ)冷たいです。
お気に入りのペイントプログラムでカラーセレクターを開くことをお勧めします。通常、HSVとRGBを並べて表示し、カラーホイールで遊んで、HSVとRGBの数値への影響を確認できます。まだ持っていない場合は、 [〜#〜] gimp [〜#〜] をお勧めします。この回答の数値を取得するために使用しているカラーホイールがあります。
ボーナス2:上記のすべては、何が暖かく、何が涼しいかの主観的な評価を前提としています。色温度を客観的に測定する唯一の方法は、色温度を測定して温度尺度で表現することだと思います。多くの場合、ケルビンが使用されているようです。この測定では、色の濃淡だけでなく、明るさ(または放射する光の量)も考慮されます。最新のモニターをお持ちの場合は、おそらくいくつかのケルビン値から選択できる温度設定があります。白(ホワイトバランス)の温度がわかっている限り、ディスプレイ上の各RGBカラーの温度を計算することができます。ただし、この計算は非常に複雑で、その方法がわかりません。 Bruce Lindbloom 詳細情報、または色彩科学に関する本の良い情報源を見つけることができます。しかし、これはあなたがあなたの質問で交渉した以上のものだと思います... ;-)
私には似ています
if (B>R) {
color=cool
} else {
color=warm
}
かなり良い近似です。これは、カラーホイールで次を使用して確認できます: http://www.colorzilla.com/firefox/
すでに回答済みですが、これを追加する必要があります:
物理的な温度と色の依存関係に興味がある場合、これはあなたが探しているスケールです:
与えられた温度の黒体から発せられる光の色です。天文学では、これは星の色の分類に使用されます( BVカラーインデックス など)。
また、間接的な温度測定にも使用できます。
暖かい色は赤が多く、冷たい色は青が多くなります。
RGBの場合:
red = 0
blue = 0
if (red > blue) {
isWarmColor = true
isCoolColor = false
}
else if (red < blue) {
isWarmColor = false
isCoolColor = true
}
else {
isWarmColor = false
isCoolColor = false
}
HSLの場合:
hueAngle = 0
if (hueAngle < 0 || hueAngle > 360 || hueAngle == 90 || hueAngle == 270) {
isWarmColor = false
isCoolColor = false
}
else if (hueAngle > 90 && hueAngle < 270) {
isWarmColor = false
isCoolColor = true
}
else if (hueAngle < 90 && hueAngle > 270) {
isWarmColor = true
isCoolColor = false
}