今回より、Small Basicでの色の指定方法やコンピュータで扱う色に関して幾つかのサンプルプログラムを作りながら学んでいきたいと思います。
まずSmall Basicで指定できる色としてどんなものがあるか見てみましょう。
GraphicsWindow.BackgroundColor – グラフィクスウィンドウの背景色
GraphicsWindow.BrushColor – グラフィクスウィンドウ、コントロールの文字や塗りつぶしの色
GraphicsWindow.PenColor – グラフィクスウィンドウの線や図形の枠の色
TextWindow.BackgroundColor – テキストウィンドウの背景色
TextWindow.ForegroundColor – テキストウィンドウの文字色
これらの色に関するプロパティを指定する3つの例を示します。
GraphicsWindow.BackgroundColor = “Gray”
GraphicsWindow.PenColor = “#0099FF”
GraphicsWindow.BrushColor = GraphicsWindow.GetColorFromRGB(255, 0, 255)
1つめは、色の名前による方法です。今回サンプルプログラムとして MXV150 を作成しました。これらの色は『Small Basic 入門』のAppendix Bにある色の一覧に基づいています。この一覧には142色が色のグループ別に並んでいますが、 “MediumSlateBlue” と “LightSalmon” が2回ずつ出てくるので、色の名前は140です。これはインターネットのウェブブラウザで使われているUNIX X11 Colors 140と同じです。140の名前のうち、 “Aqua” と “Cyan” 、 “Fuchsia” と “Magenta” はそれぞれ同じ色に付けられた名前なので、実質138色となります。

【図49 色の名前を表示するプログラム】
2つめは、RGB(赤、緑、青)の光の三原色のそれぞれの強さを16進数の文字列で指定する方法です。”#0099FF”の場合、赤が00h(0)、緑が99h(153)、青がFFh(255)ということを表しています。RGBそれぞれが0から255までの256段階の強さを表せるので、256×256×256=16,777,216色の組み合わせがあります。この “#” で始まる16進数による色の指定方法もウェブブラウザで使われる色の指定方法です。
3つめは、CraphicsWindow.GetColorFromRGB()操作を利用して上記のRGBを10進数で指定する方法です。
今回のサンプルプログラムを作るのに色の上に表示する文字の色をどうするか、少し悩みました。すべてを黒い文字にしてしまうと、暗い色の上では読みづらくなってしまいます。そこで、色の明るさに応じて文字の色を変えることにしました。
RGBの値からその色の明るさを求めるには、いくつかの方法がありますが今回はMicrosoft Officeの「色の設定」で使われているHSLカラーモデルでの明るさ(Lightness)を使いました。Lightnessは0から255で明るさを示します。
今回のプログラムでは色名、RGB、Lightness(と同じ明るさのグレー)を表示するようにし、Lightnessが120より大きいときは黒い文字、120以下なら白い文字を使うようにしています。

【図50 Microsoft Officeの「色の設定」】
Small Basicでの色の指定方法については、以上です。
次回はHSLカラーモデルで扱う色の3属性(色合い、鮮やかさ、明るさ)について学びたいと思います。
(つづく)
