跳转至

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 )

鹿皮黄色。

  • navajowhite = Color( 1, 0.87, 0.68, 1 )

印第安黄。

  • navyblue = Color( 0, 0, 0.5, 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分量构造颜色。hsv的值介于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