color mode (独自の拡張)
色を指定するのに,パレットを用いずに,色を表す24ビットの整数を直接,色指標として用いるモードを用意した。パレットの個数の制約がなくなり,ASK PIXEL ARRAY および ASK PIXEL VALUEですべての色を取得できるようになる。
SET COLOR MODE 文字列式
文字列式の値は"NATIVE","REGULAR"のいずれか。
文字列値が"REGULAR"であると,パレットを用いる通常モード。
文字列値が"NATIVE"のとき,色指標として下位8ビットが赤,中位8ビットが緑,上位8ビットが青の強度を意味する24ビットの整数を用いるモードに移行する。利用できる色指標の最大値は16777215。
color modeがnativeのとき,SET COLOR MIX文は無効。
モード切り替え時,画面を消去しない。
color modeをnativeに切り換えるとき,背景色(clear文が使う色),line color,point color,area color, text colorを引き継ぐ。
逆に,color modeをregularに切り替えると,line color,point color,area color,text colorは 1 に設定される。
ASK COLOR MODE 文字列変数
現在のcolor modeを文字列変数に取得する。
色指標を得る関数
COLORINDEX(r,g,b)
r,g,bは数値式
r,g,bに,0以上1以下の数値で,赤,緑,青の強度を指定する。
結果は,指定した色の色指標。
color modeがREGULARのとき,指定された色がパレットにないと,-1。
例 青字で"Hello"を描く
10 SET COLOR MODE "NATIVE"
20 SET TEXT COLOR ColorIndex(0,0,1)
30 PLOT TEXT ,AT 0,0:"Hello"
40 END
<参考>色を16進数で指定したいときは,BVAL関数を用いる。
たとえば,青は,BVAL("FF0000",16)。
<注意>色を指定する整数のバイト構成が,HTMLと逆。
HTMLでは上位バイトからRGBの順に指定するが,Windowsでは下位バイトからRGBの順。
<補足>
CLEAR文は,モード切替え前にSET COLOR MIX(0)で割り当てられた色で画面を塗りつぶす。