色指定する時ってなんで FFFFFFとか3c34e6とかなの?

webでブログをいじった人とかは色を指定する際に#FFFFFFとか見かけたことあるんじゃないでしょうか。これって何?という人のための記事。

FFだとファイナルファンタジー。ファイナルアンサー。
FFFFFFだと白。

 

今回はweb上でのお話とします。間違っていたら是非ご指摘を!

カラーコードと言いますねん。

やつの名前はカラーコードと言います。カラーコードって?

web上で表現される色を指定するための制御コードのこと

weblioより

 ほほう。つまりは色を指定しているってことですね!!!それはみんな薄々気がついてましたね。そうですね。

 

光は3つの色の組み合わせで表現されている

まぁどうしてこのような記述方法を取っているのか?と言いますと私達が使う端末、ハードウェアではディスプレイが光って、その光を通して私たちに伝えているんですね。ようは画面が光っているのを脳みそが認識していますよと。そして光は3つの色で私たちに色を伝えることができるのです。光の三原色といったものです。これはどこかで聞いたことがあるでしょう。光の三原色には赤、緑、そして青があります。これらの割合がどれくらい入っているのか、で色を表現しているんですね。これらは英語の頭文字をとってRGBとも表現されていますね。いや、何言ってんのかわかんねーよ嘘つくんじゃねーハゲ!!って人はいますぐテレビに向かって走って行って1cmの距離でディスプレイをみてみるんだ!3つの光が見えます。赤、緑、青。

 

ということで3つの光で色を表現していると。そしてその割合で色が決められる。あ!じゃあ3つの色を数値化したらわかりやすくね?全部100%とかさ!そう、その通りなんですね!カラーコードはそれぞれの色の割合を表現しているのです!情報系の人はここらでなるほどと勘づくと思いますが、そうです16進数で表現されていたのです。

情報の世界では0と1だけで数値を表現していると聞いたこともある人も多いんじゃないでしょうか?詳しくは避けますが0と1を使った2進数では区切りのいい数値がありまして、区切りがいいというとちょっと語弊があるかもしれませんが。さらには16進数というものもありまして、そちらを使うとたくさんの数値を都合よく扱うことができるのです。昔のゲームのHPが最大値255までだったりするのはこの理由があるんです。ちなみに私達が普段使っているのは10進数というものです。ようは、0123456789abcdefで16個の文字(と数字)で15まで数えることが可能なんですね。fが15を表します。となるともうお分かりでしょう!

#ffffffでは最初のf,2つが赤の割合です。MAXです。後ろも同様に緑、青もMAX。
だから白色が表現されています。数値としては255です。赤255,緑255,青255です。

 

255より多くてもよくねっすか? #fff fff fffみたいに

さて、この疑問を持たれるのではないでしょうか。255よりも多くてもいいんじゃないのかな?と。

情報系の世界では8bitつまり1byte毎に情報を扱うことが多く、1byteの最大値がちょうど255なのです。だから都合は良いです。笑

さらには、赤緑青で255ずつの色が表現可能となると
255*255*255 = 16,581,375 となります。約1600万。
確か1600万くらいが人間の目のちょうど限界に近いとも聞いたような?ちょっとこれは定かではないです。

 

1600万色あれば、人間の認識できる色とっては十分なんですね。これが255以上となると、2byte使うことになっておっそろしい数字が叩き出されます。もうそんなには必要ない!ということですね。

 

7文字分で1600万もの選択を

結局、#ffffffなどの表現によって、たった7文字ですよ。これによって1600万もの色が選択できるのです。すごい。#255,255,255とかでもいいですけど使う文字数が増えちゃいますよね。だから16進数を使うとすごく最適化されているのです、コンピューターによって。

遅れながら、#ってなんぞ?というのはこれから色の指定をしますよ、といったものです。