色のR・G・B
「RGBって何?」っていうおはなしです
※是非、ファイナルファンタジーの
コンフィグを開いた状態で
お読みになってください
↓
↓
↓
「聞いたことはあるけど、RGBって何?」って方に、僕が分かる範囲で少しだけ説明します
ちなみに僕が始めてRGBという言葉を知ったのは、ファイナルファンタジーのコンフィグ(設定)でした
昨日のポストで色の話をしたので、なんとなく書いてみましたが全部諸説アリの眉唾モノだと思ってください
だって素人だし
書いててどんどん難しくなっていきましたが、ぼくはコンピュータのことなんかは全然わからない単なるマンガ好きなので、コレ以上の説明はムリです
↓
↓
↓
さて、RGBというのは「光の三原色」である赤(Red)・緑(Green)・青(Blue)の頭文字をとったもので、この3色の光を組み合わせて色をつくる方法です
それぞれの色を、例えば赤なら薄い赤から濃い赤まで0~255の256の段階(階調)に分けて、同じく256段階あるほかの2色の光と重ねて違う色を作っていく手法です
光の組み合わせで色を表現している方式なので、色を重ね合わせることでどんどん白くなっていきます
R:G:Bが0:0:0の場合は黒に(光が全くない状態だと思うといいです)、255:255:255の場合は白になります(これを加法混色といいます)
試しにファイナルファンタジーのコンフィグでウインドウ色を変更してみるとイメージが付きやすいと思います
別にエクセルとかスプシでもできますが、僕はゲーム好きアカウントなのでやむを得ません
なお、光の重ね合わせで色を表現するので、RGBは印刷物とかではなく主にテレビやディスプレイなどのデバイス上で使われています
印刷の場合はCMYKという、実際の色を重ねて別の色を作っていく方式を使います。家庭用プリンターなんかのインクの色でシアンとかマゼンタとかいうのを見たことがあるのではないでしょうか?
こっちは減法混色といいます
余談ですが、サムネなんかを作る際にWeb上のみで使う場合は上に書いたとおりRGBのままでデータを作っても結構ですが、印刷して使う場合はCMYKで作る方がいいです
さて、なぜ0~255の256段階なのかというと、この色の情報が8ビット(2の8乗=256)という単位で現わされているからです
3色の光がそれぞれ256段階で現わされるので、RGBの光の重ね合わせで表現できる色の種類は256×256×256の約1677万色ということになります。
ちなみに、人間の目ではおおよそ100万色ぐらいを認識できる(瞬間的には約5万色といったり、いろんな説があります)ということなので、その10倍~200倍以上も色を表現できる手法であれば十分にこと足りますよね
ビットというのはコンピュータやデジタル通信における最小の情報単位で、「ある」か「ない」かの情報です
これを何個も組み合わせることで膨大な量の情報を表現できます(この辺の話はDr.STONEを読むと分かりやすく解説されています)
8ビットというのは「ある」か「ない」かの2通りの情報が8個あるという意味で、情報の種類が2の8乗、つまり2×2×2×2×2×2×2×2=256通りある、ということになります。
わかりやすくいうと、A君からH君までの8人がいる場合に、それぞれが「きのこ派」か「たけのこ派」のどちらかである8人の組み合わせは256通りある、ということです
「全員たけのこ派」の場合で1通り、「A君だけきのこ派」の場合で1通り、「A君とB君だけきのこ派で残り全員たけのこ派」の場合で1通り・・・みたいな感じで数えていくと256通りあります。時間のある方は実際に数えてみてください
全然わかりやすくなかったですね
この組み合わせの1つ1つに色んな明るさの赤・緑・青をそれぞれ割り振っている、という感じです
「『A君だけきのこ派』の場合はこの明るさの赤を出すことにするよ!」みたいな感じで
こういうパターンが256通りあります
8ビットの情報を1バイトといいます。バイトというのはハードディスクの容量とかでよく聞くやつですね
ちなみに、ギガというのは普通は10の9乗のことですが、コンピュータの世界では2進数(「ある」か「ない」かの2通り)での表現の方が都合がいいので、1ギガは2の30乗(2の10乗=1024、の3乗)になります
1バイトは8ビット(2の3乗ビット)なので、1ギガバイトというのは「2の3乗」×「2の30乗」で、8,589,934,592ビットに相当します
なんだかよくわからないけど、スゴく強そうですね
ところで、どこから8ビット(256通り)という数字がでてきたの?というと、ざっくりいうとコンピュータ的に8ビット=1バイトという単位が使いやすいからそうした、ということです
ぼくらがモノを数えるときに10個単位で振り分けたり、12個単位で1ダースってまとめたりするのが分かりやすい、ってのと同じようなもんです(違うかな?)
8ビットを使うと処理や管理の利便性という意味で都合がよく、コンピュータの持つ能力をより効率的に使えるようになります
あと、このあとで出てきますが、8ビットというのは十六進数の2桁の数字で表せる(なに言ってるか分かりませんよね?)という点でもメリットがあります
ところで、みなさんはカラーコードというものはご存知ですか?
コンピュータ上で色を表現する際によく使われる、「『#』+6桁の数字かアルファベット」のことです。たとえば黒なら#000000で、白なら#FFFFFFです
実はカラーコードというのは、色を「それぞれ256通りある赤と青と緑の組み合わせ」で表している記号の羅列のことなんですね
赤なら#FF0000で緑なら#00FF00です
並び順に「『#』+(赤赤)・(緑緑)・(青青)」となっています。それぞれの( )を00~99までの2桁の数字だと思ってください
でも「(赤赤)だと00~99までの100通りしかないじゃない!じゃあどうやって(赤赤)で256通りを表現してるんだよ、コラ!!」ってなりますよね
そこで登場するのが先ほど出てきた「十六進数の2桁の数字」です
われわれは普通の日常生活ではだいたい10進数を使うので、0~9まで数えたら桁が1つ上がって10になる世界で生きていますよね
十六進数の世界の一桁は、9のあとにA~Fのアルファベットが使われて、Fの次に桁が上って10になります
1・2・3・4・5・6・7・8・9・A・B・C・D・E・Fの順です
ちょっとなに言ってるのかわからないかもしれませんが、0~Fまで16個の記号が並ぶので十六進数といいます
19の次は1Aになるし、1Fの次が20で、40の前は3Fです
これの読み方はよくわかりませんが、僕ならF4を「えふふぉー」ではなく「えふじゅうよん」といいます
なので色を十六進数を使って2桁の数字で表すと、それぞれ10の位が0~F、1の位が0~Fとなり、赤一色を00~FFまで16×16の256通りで表現できることになります
2桁の数を0~9までの10個の数字で表すと、10×10で100になる、というのと同じことを言っています
これにあてはめると、50番目は「32」、200番目は「C8」となります
256番目はFFです。「えふじゅうえふ」です
余談ですが、百の位が出てくると一気に下を噛みそうになりますね。FFFは「えふひゃくえふじゅうえふ」です。
でも、銀河鉄道FFFは「すりーえふ」になると思います
さて、緑と青にもそれぞれ256通りの色があるので、それらを組み合わせると「赤赤・緑緑・青青」の並びで6桁の記号が並びます
例えば、赤・緑・青のそれぞれ200番目を使った色はカラーコードでは「# C8C8C8」と表現されます
ちなみに、「# C8C8C8」は貼り付けている画像に使っている色です。実はこのマークは僕自信のロゴです笑
組み合わせで使うので、RGBでは256×256×256=16,777,216通りの色が表現でき、それをカラーコードとして単純な記号で表すことができるというわけですね
便利なんだか、分かりづらくて不便なんだか...
ただ、こんなややこしいことを考えさえしなければ、非常にわかりやすいシステムですね
以上が、読んだからといってそれほど理解しやすくなったわけでもないRGBを非常にややこしく解説したハナシになりますが、「光の組み合わせなんやったら赤と青と緑のそれぞれの色のセロファンを被せたランプの光を重ねたら白になるんちゃうんかい」って思っている方もいらっしゃるでしょう
しかし最期に、そうやすやすとアナタの思い通りにはならないことを付け足します
ただ、その理由を簡単に説明するのが難しすぎるので、ここでは遠慮いたします。キーワードは「単一波長の光かそうでないか」です
あと、RGBをCMKYに置き換えるのはちょっとややこしいので、置き換える場合はなんらかの画像作成ソフトをお使いくださいね
一応数値を置き換える計算はできますが、この環境ではそんな式は書きたくないです
この記事が気に入ったらサポートをしてみませんか?