Color

Category: Built-In Types

Brief Description

Color in RGBA format with some support for ARGB format.

Member Functions

Color Color ( float r, float g, float b, float a )
Color Color ( float r, float g, float b )
Color Color ( int from )
Color Color ( String from )
Color blend ( Color over )
Color contrasted ( )
Color darkened ( float amount )
float gray ( )
Color inverted ( )
Color lightened ( float amount )
Color linear_interpolate ( Color b, float t )
int to_argb32 ( )
String to_html ( bool with_alpha=True )
int to_rgba32 ( )

Member Variables

  • float a - Alpha (0 to 1)
  • int a8 - Alpha (0 to 255)
  • float b - Blue (0 to 1)
  • int b8 - Blue (0 to 255)
  • float g - Green (0 to 1)
  • int g8 - Green (0 to 255)
  • float h - Hue (0 to 1)
  • float r - Red (0 to 1)
  • int r8 - Red (0 to 255)
  • float s - Saturation (0 to 1)
  • float v - Value (0 to 1)

Description

A color is represented as red, green and blue (r,g,b) components. Additionally, “a” represents the alpha component, often used for transparency. Values are in floating point and usually range from 0 to 1. Some methods (such as set_modulate(color)) may accept values > 1.

You can also create a color from standardised color names with @GDScript.ColorN.

Member Function Description

Constructs a color from an RGBA profile using values between 0 and 1 (float).

var c = Color(0.2, 1.0, .7, .8) # a color of an RGBA(51, 255, 178, 204)

Constructs a color from an RGB profile using values between 0 and 1 (float). Alpha will always be 1.

var c = Color(0.2, 1.0, .7) # a color of an RGBA(51, 255, 178, 255)

Constructs a color from a 32-bit integer (each byte represents a component of the RGBA profile).

var c = Color(274) # a color of an RGBA(0, 0, 1, 18)

Constructs a color from an HTML hexadecimal color string in ARGB or RGB format. See also @GDScript.ColorN.

The following string formats are supported:

"#ff00ff00" - ARGB format with ‘#’

"ff00ff00" - ARGB format

"#ff00ff" - RGB format with ‘#’

"ff00ff" - RGB format

# The following code creates the same color of an RGBA(178, 217, 10, 255)
var c1 = Color("#ffb2d90a") # ARGB format with '#'
var c2 = Color("ffb2d90a")  # ARGB format
var c3 = Color("#b2d90a")   # RGB format with '#'
var c4 = Color("b2d90a")    # RGB format

Returns a new color resulting from blending this color over another color. If the color is opaque, the result would also be opaque. The other color could then take a range of values with different alpha values.

var bg = Color(0.0, 1.0, 0.0, 0.5) # Green with alpha of 50%
var fg = Color(1.0, 0.0, 0.0, .5) # Red with alpha of 50%
var blendedColor = bg.blend(fg) # Brown with alpha of 75%

Returns the most contrasting color.

var c = Color(.3, .4, .9)
var contrastedColor = c.contrasted() # a color of an RGBA(204, 229, 102, 255)

Returns a new color resulting from making this color darker by the specified percentage (0-1).

var green = Color(0.0, 1.0, 0.0)
var darkgreen = green.darkened(0.2) # 20% darker than regular green

Returns the color’s grayscale.

The gray is calculated by (r + g + b) / 3.

var c = Color(0.2, 0.45, 0.82)
var gray = c.gray() # a value of 0.466667

Returns the inverted color (1-r, 1-g, 1-b, 1-a).

var c = Color(.3, .4, .9)
var invertedColor = c.inverted() # a color of an RGBA(178, 153, 26, 255)

Returns a new color resulting from making this color lighter by the specified percentage (0-1).

var green = Color(0.0, 1.0, 0.0)
var lightgreen = green.lightened(0.2) # 20% lighter than regular green

Returns the color of the linear interpolation with another color. The value t is between 0 and 1 (float).

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) # a color of an RGBA(128, 128, 0, 255)
  • int to_argb32 ( )

Returns the color’s 32-bit integer in ARGB format (each byte represents a component of the ARGB profile). More compatible with DirectX.

var c = Color(1, .5, .2)
print(str(c.to_32())) # prints 4294934323

Returns the color’s HTML hexadecimal color string in ARGB format (ex: ff34f822).

Optionally flag ‘false’ to not include alpha in hexadecimal string.

var c = Color(1, 1, 1, .5)
var s1 = c.to_html() # Results "7fffffff"
var s2 = c.to_html(false) # Results 'ffffff'
  • int to_rgba32 ( )

Returns the color’s 32-bit integer in ARGB format (each byte represents a component of the ARGB profile).

var c = Color(1, .5, .2)
print(str(c.to_32())) # prints 4294934323

This is same as :ref:`to_argb32<class_Color_to_argb32>` but may be changed later to support RGBA format instead.