SenseTalkにおけるカラー値

SenseTalkにおいて色は、成分値の組み合わせとして、さまざまなフォーマットで表現することができます。認識対象となるフォーマットを下の表に挙げます。

カラーフォーマット

値の例

説明

Basic

128,0,64

赤、緑、青の値を0~255で表現

Alpha

128,0,64,255

赤、緑、青の値とアルファ値を0~255で表現

HTML

#800040

赤、緑、青の値を16進数で表現(Webページで使用される)

W

W, 0.241

白の値を0(黒)~1(白)で表現

WA

WA, 0.241, 1.000

白の値とアルファ値を0~1で表現

RGB

RGB, 0.5, 0, 0.25

赤、緑、青の値を0~1で表現

RGBA

RGBA, 0.5, 0.0, 0.25, 1.0

赤、緑、青の値とアルファ値を0~1で表現

HSB

HSB, 0.917, 1.0, 0.5

色相、彩度、明度の値を0~1で表現

HSBA

HSBA, 0.917, 1.0, 0.5, 1.0

色相、彩度、明度の値とアルファ値を0~1で表現

CMYK

CMYK, 0.143, 0.942, 0.225, 0.274

シアン、マゼンタ、黄、黒の値を0~1で表現

CMYKA

CMYKA, 0.143, 0.942, 0.225, 0.274, 1.000

シアン、マゼンタ、黄、黒の値とアルファ値を0~1で表現

さらに、the namedColorsグローバルプロパティで定義される多数の色名称も認識されます。

デフォルトのカラーフォーマット(Basicフォーマット)は、0~255の値を持つ3つの数値のリストで、その色を構成する赤、緑、青の量を示します。Alphaフォーマットは、半透明色を扱えるシステム向けに、値の不透明度を表現した4つ目の数値(アルファ値)を追加で備えています。アルファ値0は透明を表します。

HTMLフォーマットは、番号記号(#)の後に、その色の赤、緑、青の成分をそれぞれ表す2桁の16進数をつなげた1つの値です。その他の各フォーマットでは、リストの最初にまずフォーマットコードが来て、その後に個々のカラーモデル内での各成分量を表した0.0~1.0の数値が続きます。

値を色として評価するときにSenseTalkが受け入れるのは、適切な値のリストまたはテキストリスト(コンマで区切られた値から成るテキスト文字列)のいずれかです。

関連するグローバルプロパティ

以降に説明するコマンドと関数に加え、スクリプト内での色の扱いに関する一定の側面は、次の2つのSenseTalkグローバルプロパティによって管理することができます。

各グローバルプロパティの定義は、値の扱いに関するグローバルプロパティとローカルプロパティをご覧ください。

colorasColor関数

振る舞い

color()関数は、認識対象のいずれかのカラーフォーマットの文字列またはリストから、カラー値を返します。the colorFormatプロパティ用に記述される11のフォーマットはどれも、テキストリスト(アイテムはコンマ区切り)または純粋な数値リストのどちらでも認識されます。さらに、the namedColorsグローバルプロパティで定義される色名称を使うこともできます。

使用場面

color()関数は、まだ色として表現されていない値から色を取得する必要があるときに使用します。color()関数は、用法の1つとして、フォーマットが異なるような2つの色を比較して、それらが同じ色を表すかどうかを確認するのによく使われます。

put color("#00FFFF") is the color of "aqua" -- 「true」を表示します

if color of stripe is color("red") then ...

技術トピック

構文: color(文字列またはリスト)
the color of 文字列またはリスト

color関数は、値を色としての内部表現に変換します。これは、シノニムであるasColor関数やas color演算子を使って呼び出すこともできます。

関連:

red()green()blue()hue()saturation()brightness()cyan()magenta()yellow()black()white()alpha()関数

振る舞い

それぞれの関数は、特有の色空間を用いて解釈された色の成分値を1つ返します。戻り値の範囲は、常に0(色にその成分が全く含まれない)から1(色にその成分が最大量含まれる)の間です。

使用場面

red()green()およびblue()関数は、赤/緑/青の色空間で表現された色の各成分を取得するときに使用します。hue()saturation()およびbrightness()関数は、色相、彩度、明度の色空間で表現された色の各成分を取得するときに使用します。cyan()magenta()yellow()およびblack()関数は、印刷時によく使われるシアン/マゼンタ/黄/黒の色空間で表現された色の各成分を取得するときに使用します。white()関数は、グレースケールの色空間で色を評価してホワイトレベルを0(黒)から1(白)の間で返します。alpha()関数は、色の不透明度の値を0(透明)から1(不透明)の間で返します。

put the red of "purple" -- 0.5

put blue("#00FFFF") -- 1

put hue("purple") -- 0.833333

put yellow("#00FFFF") -- 0.133043

put white of "purple" -- 0.268208

技術トピック

構文: red(文字列またはリスト) , blue(文字列またはリスト) , ...
the red of 文字列またはリスト , the blue of 文字列またはリスト , ...

各関数は、文字列またはリストを色として評価し、適切な色空間内でその色に存在する取得対象の色成分量を0~1で表した値を返します。なお、black()およびwhite()関数は、異なる色空間内で色を評価するものであって、真逆の関数ではありません。

関連:

color関数

the colorFormatグローバルプロパティ

is a color演算子

振る舞い

is a color演算子は、標準的なis a演算子を拡張したもので、与えられた値が色として解釈できるかどうかをテストします。

使用場面

is a color演算子は、値が色として有効かどうかの判定がスクリプトで必要なときに使用します。

put "#00FFFF"is a color -- 「true」を表示します

if shade is a color then then ...

技術トピック

構文: 値 is a color

が、認識対象のいずれかのカラーフォーマットの文字列またはリストである場合、またはthe namedColorsグローバルプロパティで定義されている色名称の1つである場合に、is a color演算子は「true」と評価します。

STColorVersion関数

振る舞い

STColor Xmoduleのバージョン番号を返します。

使用場面

STColorVersion()関数が必要になる場面はめったにありませんが、互換性の理由から使用中のカラーモジュールのバージョン確認が必要になった場合には、この関数を使うことができます。

if the STColorVersion < 1.02 then ...

技術トピック

構文:STColorVersion()

the STColorVersion

STColorVersion関数は、番号を返します。

 

This topic was last updated on 2月 01, 2019, at 11:13:23 午前.

Eggplant icon Eggplant.io | Documentation Home | User Forums | Support | Copyright © 2019 Eggplant