C o l o r について


パソコンの仕様書なんかにはよくフルカラー表示、同時に1,677万色表示などと書いてます。 なぜ、1,677万色なのか??この中途半端な数はいったい??結論からいうと、ディジタル つまり2進数の世界のパソコンの中では中途半端ではないのであるこの数は。 今回はこれを説明。

パソコンでの色指定には通常6桁の16進数で指定します。ホームページを作ったことのある人なら フォントの色などを color=#ff0000 などというように指定したことがあると思います。 この6桁の16進数は一体なにを表していてどういう規則性を持っているのだろう?

まず光ということについて考えてみます。光は波長(すなわち色)と強さ(つまり明るさ) によって表すことができます。パソコンの場合、ドット単位(小さな点)で表示するので 各点における色と明るさを指定すればいいわけです。
まず色。これは光の3原色で表現できます。つまり、 の3つの光をさまざまな割合で混ぜることによってすべての光が表現できます。3つとも0の時は黒、 3色すべて混じると白となります。(ちなみに絵の具などの色の3原色は赤・黄・青ですべて混じる と黒になります。) つまり をどの割合で混ぜてやるかを指定すればいいのです。
さて次に明るさですが、明るさ(強さ)の段階は無数にあります。アナログの場合は特に問題はないのですが パソコンはディジタルで扱うので有限の段階に分けてやる必要があります。 そこで、8bit(28=256)つまり256段階に分けてやります。これを量子化といいます。 (ちなみにCDのように音の場合は一般的に音の強さを16bitに量子化しています。)

つまり各点の光(色)を指定するには それぞれの明るさ(強さ)を指定すればいいのです。
Windowsの画面のプロパティにおいて色指定がフルカラー1,677万色とあるのはこのためです。 つまり、8bit量子化によって(の256段階× の256段階×の256段階)=1,677万通りの光(色)が表現できるわけです。
パソコンの画面表示においては次のようなことが行われています。 絵や写真の各ドットのデータとしてはグラフィック用メモリのメモリ番地が書かれています。 メモリには16進数6桁(1,677万色の中の一つ)の光(3色それぞれの明るさ)のデータが示されています。 つまりそのドットにはそのメモリ番地の示すメモリに書かれてある光(色)が表示されます。
フルカラー表示するためにはメモリの数が1,677万個必要となるわけですが、昔のパソコンはそんなにメモリを 持っていなかったので、1,677万色のうちの16色だけとか256色だけメモリに準備しておくことにしたわけです。 このため、同時に表示できる色の数が16色とか256色とかになるわけです。 Windowsでも16色とか256色にするとメモリの使用量が少なくてすむのはこのためです。

さて、話ははじめに戻ってHTMLで色指定するには実際にはどうすればいいのか? 話は簡単です。 color=#000000 とあるあの16進数6桁で指定できます。#の後の2桁が の明るさを、次の2桁がの明るさを、そして最後の2桁が の明るさを指定しているわけです。
ちなみに6桁とも0の場合はすべての明るさ(光の強さ)が0なのでもちろん黒に。そしてすべての色が一番明るい6桁とも fの時は白になります。
また、一番明るい赤は color=#ff0000 で上位2桁が ff から 00 になるに連れて暗くなります。 つまりbrightな赤からdarkな赤へと変わっていきます。

それでは実際に、下のフレームにあるcolor changerでいろいろ試してみてください。 16進数6桁をBoxの中に書いて、changeボタンを押してください。

BACK

N.Wakayama update November.16.1997