Color¶
简要描述¶
RGBA格式的颜色,并支持ARGB格式。
描述¶
颜色由红色,绿色和蓝色(r, g, b)
分量表示。另外,a
表示Alpha分量,通常用于透明度。颜色值以浮点数表示,通常为0到1。某些属性(例如CanvasItem.modulate)可以接收大于1的值。
您还可以使用[@IVRScript.ColorN]或直接使用此处定义的颜色常量,从标准化颜色名称创建颜色。标准化颜色集基于[url=https://en.wikipedia.org/wiki/X11_color_names]X11颜色名称[/url]。
成员¶
类型 | 属性名 | 默认值 |
---|---|---|
float | a | 1.0 |
int | a8 | 255 |
float | b | 0.0 |
int | b8 | 0 |
float | g | 0.0 |
int | g8 | 0 |
float | h | 0.0 |
float | r | 0.0 |
int | r8 | 0 |
float | s | 0.0 |
float | v(#member-v) | 0.0 |
方法¶
返回值类型 | 方法名称 |
---|---|
Color | Color(from: String) |
Color | Color(from: int) |
Color | Color(r: float, g: float, b: float) |
Color | Color(r: float, g: float, b: float, a: float) |
Color | blend(over: Color) |
Color | contrasted() |
Color | darkened(amount: float) |
Color | from_hsv(h: float, s: float, v: float, a: float = 1.0) |
float | gray() |
Color | inverted() |
bool | is_equal_approx(color: Color) |
Color | lightened(amount: float) |
Color | linear_interpolate(b: Color, t: float) |
int | to_abgr32() |
int | to_abgr64() |
int | to_argb32() |
int | to_argb64() |
String | to_html(with_alpha: bool = true) |
int | to_rgba32() |
int | to_rgba64() |
常量¶
- gray = Color( 0.75, 0.75, 0.75, 1 )
灰色。
- aliceblue = Color( 0.94, 0.97, 1, 1 )
艾莉斯蓝。
- antiquewhite = Color( 0.98, 0.92, 0.84, 1 )
古董白。
- aqua = Color( 0, 1, 1, 1 )
水绿色。
- aquamarine = Color( 0.5, 1, 0.83, 1 )
碧绿色。
- azure = Color( 0.94, 1, 1, 1 )
天蓝色。
- beige = Color( 0.96, 0.96, 0.86, 1 )
米黄色。
- bisque = Color( 1, 0.89, 0.77, 1 )
乳黄色。
- black = Color( 0, 0, 0, 1 )
黑色。
- blanchedalmond = Color( 1, 0.92, 0.8, 1 )
白杏色。
- blue = Color( 0, 0, 1, 1 )
蓝色。
- blueviolet = Color( 0.54, 0.17, 0.89, 1 )
蓝紫色。
- brown = Color( 0.65, 0.16, 0.16, 1 )
棕色。
- burlywood = Color( 0.87, 0.72, 0.53, 1 )
实木色。
- cadetblue = Color( 0.37, 0.62, 0.63, 1 )
藏青色。
- chartreuse = Color( 0.5, 1, 0, 1 )
浅黄绿色。
- chocolate = Color( 0.82, 0.41, 0.12, 1 )
巧克力色。
- coral = Color( 1, 0.5, 0.31, 1 )
珊瑚红。
- cornflower = Color( 0.39, 0.58, 0.93, 1 )
菊蓝色。
- cornsilk = Color( 1, 0.97, 0.86, 1 )
玉米黄。
- crimson = Color( 0.86, 0.08, 0.24, 1 )
暗红色。
- cyan = Color( 0, 1, 1, 1 )
蓝绿色。
- darkblue = Color( 0, 0, 0.55, 1 )
深蓝色。
- darkcyan = Color( 0, 0.55, 0.55, 1 )
深青色。
- darkgoldenrod = Color( 0.72, 0.53, 0.04, 1 )
暗黄色。
- darkgray = Color( 0.66, 0.66, 0.66, 1 )
深灰色。
- darkgreen = Color( 0, 0.39, 0, 1 )
深绿色。
- darkkhaki = Color( 0.74, 0.72, 0.42, 1 )
深黄褐色。
- darkmagenta = Color( 0.55, 0, 0.55, 1 )
深洋红色。
- darkolivegreen = Color( 0.33, 0.42, 0.18, 1 )
深橄榄绿。
- darkorange = Color( 1, 0.55, 0, 1 )
深橘色。
- darkorchid = Color( 0.6, 0.2, 0.8, 1 )
暗紫色。
- darkred = Color( 0.55, 0, 0, 1 )
深红色。
- darksalmon = Color( 0.91, 0.59, 0.48, 1 )
深橙红。
- darkseagreen = Color( 0.56, 0.74, 0.56, 1 )
深海洋绿。
- darkslateblue = Color( 0.28, 0.24, 0.55, 1 )
深灰蓝色。
- darkslategray = Color( 0.18, 0.31, 0.31, 1 )
墨绿色。
- darkturquoise = Color( 0, 0.81, 0.82, 1 )
暗宝石绿。
- darkviolet = Color( 0.58, 0, 0.83, 1 )
深紫红色。
- deeppink = Color( 1, 0.08, 0.58, 1 )
深粉红色。
- deepskyblue = Color( 0, 0.75, 1, 1 )
深天蓝色。
- dimgray = Color( 0.41, 0.41, 0.41, 1 )
暗灰色。
- dodgerblue = Color( 0.12, 0.56, 1, 1 )
闪蓝色。
- firebrick = Color( 0.7, 0.13, 0.13, 1 )
砖红色。
- floralwhite = Color( 1, 0.98, 0.94, 1 )
花白色。
- forestgreen = Color( 0.13, 0.55, 0.13, 1 )
葱绿色。
- fuchsia = Color( 1, 0, 1, 1 )
紫红色。
- gainsboro = Color( 0.86, 0.86, 0.86, 1 )
亮灰色。
- ghostwhite = Color( 0.97, 0.97, 1, 1 )
苍白色。
- gold = Color( 1, 0.84, 0, 1 )
金色。
- goldenrod = Color( 0.85, 0.65, 0.13, 1 )
金黄色。
- green = Color( 0, 1, 0, 1 )
绿色。
- greenyellow = Color( 0.68, 1, 0.18, 1 )
黄绿色。
- honeydew = Color( 0.94, 1, 0.94, 1 )
蜜色。
- hotpink = Color( 1, 0.41, 0.71, 1 )
亮粉色。
- indianred = Color( 0.8, 0.36, 0.36, 1 )
印度红。
- indigo = Color( 0.29, 0, 0.51, 1 )
靛蓝色。
- ivory = Color( 1, 1, 0.94, 1 )
象牙色。
- khaki = Color( 0.94, 0.9, 0.55, 1 )
卡其色。
- lavender = Color( 0.9, 0.9, 0.98, 1 )
淡紫色。
- lavenderblush = Color( 1, 0.94, 0.96, 1 )
淡紫红。
- lawngreen = Color( 0.49, 0.99, 0, 1 )
草绿色。
- lemonchiffon = Color( 1, 0.98, 0.8, 1 )
柠檬纱色。
- lightblue = Color( 0.68, 0.85, 0.9, 1 )
浅蓝色。
- lightcoral = Color( 0.94, 0.5, 0.5, 1 )
浅珊瑚色。
- lightcyan = Color( 0.88, 1, 1, 1 )
浅青色。
- lightgoldenrod = Color( 0.98, 0.98, 0.82, 1 )
淡金黄色。
- lightgray = Color( 0.83, 0.83, 0.83, 1 )
浅灰色。
- lightgreen = Color( 0.56, 0.93, 0.56, 1 )
浅绿色。
- lightpink = Color( 1, 0.71, 0.76, 1 )
浅粉色。
- lightsalmon = Color( 1, 0.63, 0.48, 1 )
浅橙红色。
- lightseagreen = Color( 0.13, 0.7, 0.67, 1 )
浅海绿色。
- lightskyblue = Color( 0.53, 0.81, 0.98, 1 )
浅天蓝色。
- lightslategray = Color( 0.47, 0.53, 0.6, 1 )
浅青灰色。
- lightsteelblue = Color( 0.69, 0.77, 0.87, 1 )
浅铁青色。
- lightyellow = Color( 1, 1, 0.88, 1 )
浅黄色。
- lime = Color( 0, 1, 0, 1 )
酸橙色。
- limegreen = Color( 0.2, 0.8, 0.2, 1 )
暗绿色。
- linen = Color( 0.98, 0.94, 0.9, 1 )
亚麻色。
- magenta = Color( 1, 0, 1, 1 )
洋红色。
- maroon = Color( 0.69, 0.19, 0.38, 1 )
栗色。
- mediumaquamarine = Color( 0.4, 0.8, 0.67, 1 )
中绿色。
- mediumblue = Color( 0, 0, 0.8, 1 )
中蓝色。
- mediumorchid = Color( 0.73, 0.33, 0.83, 1 )
浅兰花紫。
- mediumpurple = Color( 0.58, 0.44, 0.86, 1 )
中紫色。
- mediumseagreen = Color( 0.24, 0.7, 0.44, 1 )
中海绿色。
- mediumslateblue = Color( 0.48, 0.41, 0.93, 1 )
中灰蓝色。
- mediumspringgreen = Color( 0, 0.98, 0.6, 1 )
中草绿色。
- mediumturquoise = Color( 0.28, 0.82, 0.8, 1 )
中宝石绿。
- mediumvioletred = Color( 0.78, 0.08, 0.52, 1 )
中紫红色。
- midnightblue = Color( 0.1, 0.1, 0.44, 1 )
中灰蓝色。
- mintcream = Color( 0.96, 1, 0.98, 1 )
薄荷乳白色。
- mistyrose = Color( 1, 0.89, 0.88, 1 )
浅玫瑰色。
- moccasin = Color( 1, 0.89, 0.71, 1 )
鹿皮黄色。
印第安黄。
海军蓝。
- oldlace = Color( 0.99, 0.96, 0.9, 1 )
浅米色。
- olive = Color( 0.5, 0.5, 0, 1 )
橄榄色。
- olivedrab = Color( 0.42, 0.56, 0.14, 1 )
淡绿褐色。
- orange = Color( 1, 0.65, 0, 1 )
橙色。
- orangered = Color( 1, 0.27, 0, 1 )
橘红色。
- orchid = Color( 0.85, 0.44, 0.84, 1 )
兰花紫。
- palegoldenrod = Color( 0.93, 0.91, 0.67, 1 )
浅菊黄色。
- palegreen = Color( 0.6, 0.98, 0.6, 1 )
苍绿色。
- paleturquoise = Color( 0.69, 0.93, 0.93, 1 )
苍宝石绿。
- palevioletred = Color( 0.86, 0.44, 0.58, 1 )
苍紫罗兰色。
- papayawhip = Color( 1, 0.94, 0.84, 1 )
粉木瓜橙。
- peachpuff = Color( 1, 0.85, 0.73, 1 )
桃红色。
- peru = Color( 0.8, 0.52, 0.25, 1 )
秘鲁色。
- pink = Color( 1, 0.75, 0.8, 1 )
粉红色。
- plum = Color( 0.87, 0.63, 0.87, 1 )
深紫色。
- powderblue = Color( 0.69, 0.88, 0.9, 1 )
粉蓝色。
- purple = Color( 0.63, 0.13, 0.94, 1 )
紫色。
- rebeccapurple = Color( 0.4, 0.2, 0.6, 1 )
丽贝卡紫。
- red = Color( 1, 0, 0, 1 )
红色。
- rosybrown = Color( 0.74, 0.56, 0.56, 1 )
玫瑰棕色。
- royalblue = Color( 0.25, 0.41, 0.88, 1 )
宝蓝色。
- saddlebrown = Color( 0.55, 0.27, 0.07, 1 )
重褐色。
- salmon = Color( 0.98, 0.5, 0.45, 1 )
浅橙色。
- sandybrown = Color( 0.96, 0.64, 0.38, 1 )
沙褐色。
- seagreen = Color( 0.18, 0.55, 0.34, 1 )
海绿色。
- seashell = Color( 1, 0.96, 0.93, 1 )
贝壳色。
- sienna = Color( 0.63, 0.32, 0.18, 1 )
赭色。
- silver = Color( 0.75, 0.75, 0.75, 1 )
银色。
- skyblue = Color( 0.53, 0.81, 0.92, 1 )
天蓝色。
- slateblue = Color( 0.42, 0.35, 0.8, 1 )
青蓝色。
- slategray = Color( 0.44, 0.5, 0.56, 1 )
石板灰。
- snow = Color( 1, 0.98, 0.98, 1 )
雪白色。
- springgreen = Color( 0, 1, 0.5, 1 )
嫩绿色。
- steelblue = Color( 0.27, 0.51, 0.71, 1 )
铁青色。
- tan = Color( 0.82, 0.71, 0.55, 1 )
棕褐色。
- teal = Color( 0, 0.5, 0.5, 1 )
青色。
- thistle = Color( 0.85, 0.75, 0.85, 1 )
蓟色。
- tomato = Color( 1, 0.39, 0.28, 1 )
番茄色。
- transparent = Color( 1, 1, 1, 0 )
透明色(白色,Alpha值为0)。
- turquoise = Color( 0.25, 0.88, 0.82, 1 )
青绿色。
- violet = Color( 0.93, 0.51, 0.93, 1 )
紫罗兰色。
- webgray = Color( 0.5, 0.5, 0.5, 1 )
Web灰色。
- webgreen = Color( 0, 0.5, 0, 1 )
Web绿色。
- webmaroon = Color( 0.5, 0, 0, 1 )
Web栗色。
- webpurple = Color( 0.5, 0, 0.5, 1 )
Web紫色。
- wheat = Color( 0.96, 0.87, 0.7, 1 )
小麦色。
- white = Color( 1, 1, 1, 1 )
白色。
- whitesmoke = Color( 0.96, 0.96, 0.96, 1 )
烟白色。
- yellow = Color( 1, 1, 0, 1 )
黄色。
- yellowgreen = Color( 0.6, 0.8, 0.2, 1 )
黄绿色。
成员说明¶
- float a
Default | 1.0 |
---|---|
getter | **** |
- int a8
Default | 255 |
---|---|
getter | **** |
- float b
Default | 0.0 |
---|---|
getter | **** |
- int b8
Default | 0 |
---|---|
getter | **** |
- float g
Default | 0.0 |
---|---|
getter | **** |
- int g8
Default | 0 |
---|---|
getter | **** |
- float h
Default | 0.0 |
---|---|
getter | **** |
- float r
Default | 0.0 |
---|---|
getter | **** |
- int r8
Default | 0 |
---|---|
getter | **** |
- float s
Default | 0.0 |
---|---|
getter | **** |
- float v
Default | 0.0 |
---|---|
getter | **** |
方法说明¶
- Color Color(from: String)
从HTML十六进制颜色字符串构造ARGB或RGB格式的颜色。另请参见[@IVRScript.ColorN]。
# 以下各项均创建相同的颜色RGBA(178, 217, 10, 255)。
var c1 = Color("#ffb2d90a") # 带“#”的ARGB格式。
var c2 = Color("ffb2d90a") # ARGB格式。
var c3 = Color("#b2d90a") # 带“#”的RGB格式。
var c4 = Color("b2d90a") # RGB格式。
- Color Color(from: int)
用32位整数构造颜色(每个字节代表RGBA格式的一个分量)。
var c = Color(274) # 等价于RGBA(0, 0, 1, 18)
- Color Color(r: float, g: float, b: float)
用0到1之间的值构造RGB格式的颜色,Alpha始终为1。
var c = Color(0.2, 1.0, 0.7) # 等价于RGBA(51, 255, 178, 255)
- Color Color(r: float, g: float, b: float, a: float)
用0到1之间的值构造RGBA格式的颜色。
var c = Color(0.2, 1.0, 0.7, 0.8) # 等价于RGBA(51, 255, 178, 204)
- blend blend(over: Color)
返回将这种颜色混合到另一种颜色而得到的新颜色。如果颜色是不透明的,则结果也是不透明的。第二种颜色可以具有一定范围的Alpha值。
var bg = Color(0.0, 1.0, 0.0, 0.5) # 绿色,Alpha为50%
var fg = Color(1.0, 0.0, 0.0, 0.5) # 红色,Alpha为50%
var blended_color = bg.blend(fg) # 棕色,Alpha为75%
- contrasted contrasted()
返回对比度最大的颜色。
var c = Color(0.3, 0.4, 0.9)
var contrasted_color = c.contrasted() # 等价于RGBA(204, 229, 102, 255)
- darkened darkened(amount: float)
返回一种新颜色,该颜色是通过将颜色变暗指定的百分比(比率从0到1)而得出的。
var green = Color(0.0, 1.0, 0.0)
var darkgreen = green.darkened(0.2) # 比普通绿色暗20%
- from_hsv from_hsv(h: float, s: float, v: float, a: float = 1.0)
根据HSV分量构造颜色。h
、s
和v
的值介于0和1之间。
var c = Color.from_hsv(0.58, 0.5, 0.79, 0.8) # 等价于HSV(210, 50, 79, 0.8)或Color8(100, 151, 201, 0.8)
- gray gray()
返回颜色的灰度表示。
灰度值计算为(r + g + b) /3
。
var c = Color(0.2, 0.45, 0.82)
var gray = c.gray() # 灰度值为0.466667
- inverted inverted()
返回反色(1 - r, 1 - g, 1 - b, a)
。
var c = Color(0.3, 0.4, 0.9)
var inverted_color = c.inverted() # 颜色为RGBA(178, 153, 26, 255)
- is_equal_approx is_equal_approx(color: Color)
如果此颜色和color
大致相等(通过在每个分量上运行[@IVRScript.is_equal_approx]),则返回true
。
- lightened lightened(amount: float)
返回一种新的颜色,该颜色是通过使该颜色变浅指定的百分比(比率从0到1)而产生的。
var green = Color(0.0, 1.0, 0.0)
var lightgreen = green.lightened(0.2) # 比普通绿色浅20%
- linear_interpolate linear_interpolate(b: Color, t: float)
返回与另一种颜色线性插值得到的新颜色。插值因子t
在0到1之间。
var c1 = Color(1.0, 0.0, 0.0)
var c2 = Color(0.0, 1.0, 0.0)
var li_c = c1.linear_interpolate(c2, 0.5) # 颜色为RGBA(128, 128, 0, 255)
- to_abgr32 to_abgr32()
以ABGR格式返回颜色的32位整数(每个字节代表ABGR格式的一个分量)。ABGR是默认格式的反向版本。
var c = Color(1, 0.5, 0.2)
print(c.to_abgr32()) # 输出4281565439
- to_abgr64 to_abgr64()
以ABGR格式返回颜色的64位整数(每两个字节代表ABGR格式的一个分量)。ABGR是默认格式的反向版本。
var c = Color(1, 0.5, 0.2)
print(c.to_abgr64()) # 输出-225178692812801
- to_argb32 to_argb32()
以ARGB格式返回颜色的32位整数(每个字节代表ARGB格式的一个分量)。ARGB与DirectX更兼容。
var c = Color(1, 0.5, 0.2)
print(c.to_argb32()) # 输出4294934323
- to_argb64 to_argb64()
以ARGB格式返回颜色的64位整数(每两个字节代表ARGB格式的一个分量)。ARGB与DirectX更兼容。
var c = Color(1, 0.5, 0.2)
print(c.to_argb64()) # 输出-2147470541
- to_html to_html(with_alpha: bool = true)
以ARGB格式返回颜色的HTML十六进制颜色字符串(例如:ff34f822
)。
将with_alpha
设置为false
会从十六进制字符串中去除Alpha分量。
var c = Color(1, 1, 1, 0.5)
var s1 = c.to_html() # 返回"7fffffff"
var s2 = c.to_html(false) # 返回"ffffff"
- to_rgba32 to_rgba32()
以RGBA格式返回颜色的32位整数(每个字节代表RGBA格式的一个分量)。RGBA是IdeaVR的默认格式。
var c = Color(1, 0.5, 0.2)
print(c.to_rgba32()) # 输出4286526463
- to_rgba64 to_rgba64()
以RGBA格式返回颜色的64位整数(每两个字节代表RGBA格式的一个分量)。RGBA是IdeaVR的默认格式。
var c = Color(1, 0.5, 0.2)
print(c.to_rgba64()) # 输出-140736629309441