Color Values in SenseTalk
On this page:
Supported Color Formats
The recognized formats are listed in the following table:
Color Format |
Example Value |
Description |
Basic |
128,0,64 |
Red, green, and blue values from 0 to 255 |
Alpha |
128,0,64,255 |
Red, green, blue, and alpha values from 0 to 255 |
HTML |
#800040 |
Red, green, and blue values in hexadecimal form as used in web pages |
W |
W, 0.241 |
White value from 0 (black) to 1 (white)k |
WA |
WA, 0.241, 1.000 |
White and alpha values from 0 to 1 |
RGB |
RGB, 0.5, 0, 0.25 |
Red, green, and blue values from 0 to 1 |
RGBA |
RGBA, 0.5, 0.0, 0.25, 1.0 |
Red, green, blue, and alpha values from 0 to 1 |
HSB |
HSB, 0.917, 1.0, 0.5 |
Hue, saturation, and brightness values from 0 to 1 |
HSBA |
HSBA, 0.917, 1.0, 0.5, 1.0 |
Hue, saturation, brightness and alpha values from 0 to 1 |
CMYK |
CMYK, 0.143, 0.942, 0.225, 0.274 |
Cyan, magenta, yellow, and black values from 0 to 1 |
CMYKA |
CMYKA, 0.143, 0.942, 0.225, 0.274, 1.000 |
Cyan, magenta, yellow, black, and alpha values from 0 to 1 |
In addition, a number of color names are recognized, as defined by the namedColors global property.
The default color format, known as the Basic format, is a list of three numbers with values in the range 0 to 255, indicating the amounts of red, green, and blue that compose the color. The Alpha format adds a fourth number, known as the alpha value, that represents the opacity of the value, for systems that can work with partially-transparent colors. An alpha value of zero represents clear.
The HTML format is a single value consisting of a pound sign (#) followed by two hexadecimal digits each for the red, green, and blue components of the color. Each of the other formats is a list beginning with a format code, followed by numeric values in the range 0.0 to 1.0 representing the amount of each component in a particular color model.
When evaluating a value as a color, SenseTalk can accept either a list of appropriate values, or a text list (a text string consisting of values separated by commas).
Related Global Properties
In addition to the commands and functions described below, there are two SenseTalk global properties you can use to govern certain aspects of working with color in scripts:
These global properties are defined on Global and Local Properties for Working with Values.
Related Commands and Functions
There are a number of color-related commands and functions in SenseTalk.
Color, AsColor Function
Behavior: The color function returns a color value from a string or list in one of the recognized color formats. Any of the 11 formats described for the colorFormat property are recognized, as either text lists (with items separated by commas) or as true lists of values. In addition, color names can be used, as defined by the namedColors global property.
Use the color function whenever a color is needed from a value that may not already be represented as a color. One common use of the color function is to compare two colors that may be in different formats to see if they represent the same color.
Syntax:
color(stringOrList)
the color of stringOrList
Syntax definitions for language elements follow these formatting guidelines:
- boldface: Indicates words and characters that must be typed exactly
- italic: Indicates expressions or other variable elements
- {} (curly braces): Indicate optional elements.
- [] (square brackets) separated by | (vertical pipes): Indicate alternative options where one or the other can be used, but not both.
Example syntax:
In this example, "open file" is required and must be typed exactly. "fileName" is a variable element; it is the path to and name of the file being opened. The following expression is optional and indicates why the file is being opened. If this expression is added, "for" is required and must be typed exactly. One of the following must be included, but only one, and they also must be typed exactly: "reading", "writing", "readwrite", "appending", or "updating".
The color function converts a value to its internal representation as a color. This can also be called using the synonymous asColor function, or the as color operator.
Example:
put color("#00FFFF") is the color of "aqua" -- shows 'true'
if color of stripe is color("red") then
//Do something
end if
Related:
Red, Green, Blue, Hue, Saturation, Brightness, Cyan, Magenta, Yellow, Black, White, and Alpha Functions
Behavior: These functions each return one component value of a color interpreted using a particular color space. The value returned is always in the range from 0 (the color does not contain any of that component) to 1 (the color contains the maximum possible amount of that component).
Use the red , green, and blue functions to obtain the individual components of a color as represented using the red/green/blue color space. Use the hue , saturation, and brightness functions to get the individual components of a color as represented using the hue, saturation, and brightness color space. Use the cyan , magenta , yellow, and black functions to obtain the individual components of a color as represented using the cyan/magenta/yellow/black color space that is commonly used when printing. Use the white function to evaluate a color using a greyscale color space and return the level of white from 0 (black) to 1 (white). Use the alpha function to return the opacity of a color value, from 0 (transparent) to 1 (opaque).
Syntax:
red(stringOrList) , blue(stringOrList) , ...
the red of stringOrList , the blue of stringOrList , ...
Syntax definitions for language elements follow these formatting guidelines:
- boldface: Indicates words and characters that must be typed exactly
- italic: Indicates expressions or other variable elements
- {} (curly braces): Indicate optional elements.
- [] (square brackets) separated by | (vertical pipes): Indicate alternative options where one or the other can be used, but not both.
Example syntax:
In this example, "open file" is required and must be typed exactly. "fileName" is a variable element; it is the path to and name of the file being opened. The following expression is optional and indicates why the file is being opened. If this expression is added, "for" is required and must be typed exactly. One of the following must be included, but only one, and they also must be typed exactly: "reading", "writing", "readwrite", "appending", or "updating".
Each of these functions evaluates stringOrList as a color and returns a value in the range 0 to 1 representing the amount of the requested color component that is present in that color in the appropriate color space. Note that the black and white functions are not opposites, as they evaluate the color in different color spaces.
Examples:
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
Related:
Is a Color Operator
Behavior: The is a color operator is an extension to the standard is a operator that tests whether a given value can be interpreted as a color.
Use the is a color operator whenever your script needs to determine if a value is valid as a color.
Syntax:
value is a color
Syntax definitions for language elements follow these formatting guidelines:
- boldface: Indicates words and characters that must be typed exactly
- italic: Indicates expressions or other variable elements
- {} (curly braces): Indicate optional elements.
- [] (square brackets) separated by | (vertical pipes): Indicate alternative options where one or the other can be used, but not both.
Example syntax:
In this example, "open file" is required and must be typed exactly. "fileName" is a variable element; it is the path to and name of the file being opened. The following expression is optional and indicates why the file is being opened. If this expression is added, "for" is required and must be typed exactly. One of the following must be included, but only one, and they also must be typed exactly: "reading", "writing", "readwrite", "appending", or "updating".
If value is a string or list in one of the recognized color formats, or is one of the color names defined by the namedColors global property, the is a color operator will evaluate to “true”.
Examples:
put "#00FFFF"is a color -- shows 'true'
if shade is a color then
//Do something
end if
STColorVersion Function
Behavior: Returns the version number of the STColor Xmodule.
You will rarely need the STColorVersion function, but might use it if there is a need to check the version of the color module in use for compatibility reasons.
Syntax:
STColorVersion()
the STColorVersion
Syntax definitions for language elements follow these formatting guidelines:
- boldface: Indicates words and characters that must be typed exactly
- italic: Indicates expressions or other variable elements
- {} (curly braces): Indicate optional elements.
- [] (square brackets) separated by | (vertical pipes): Indicate alternative options where one or the other can be used, but not both.
Example syntax:
In this example, "open file" is required and must be typed exactly. "fileName" is a variable element; it is the path to and name of the file being opened. The following expression is optional and indicates why the file is being opened. If this expression is added, "for" is required and must be typed exactly. One of the following must be included, but only one, and they also must be typed exactly: "reading", "writing", "readwrite", "appending", or "updating".
Returns: The STColorVersion function returns a number.
Examples:
if the STColorVersion < 1.02 then
//Do something
end if