hbutils.color.model

Overview:

Color model, include rgb, hsv, hls color system.

More color system will be supported soon.

Color

class hbutils.color.model.Color(c: Union[str, Tuple[float, float, float], Color], alpha: Optional[float] = None)[source]
Overview:

Color utility object.

Examples::
>>> from hbutils.color import Color
>>>
>>> c = Color('red')  # from name
>>> c
<Color red>
>>> str(c)  # hex format
'#ff0000'
>>> (c.rgb.red, c.rgb.green, c.rgb.blue)            # rgb format
(1.0, 0.0, 0.0)
>>> (c.hls.hue, c.hls.lightness, c.hls.saturation)  # hls format
(0.0, 0.5, 1.0)
>>> (c.hsv.hue, c.hsv.value, c.hsv.saturation)      # hsv format
(0.0, 1.0, 1.0)
>>> c1 = Color('#56a3f0')  # from hex
>>> c1
<Color #56a3f0>
>>> str(c1)  # hex format
'#56a3f0'
>>> (c1.rgb.red, c1.rgb.green, c1.rgb.blue)            # rgb format
(0.33725490196078434, 0.6392156862745098, 0.9411764705882353)
>>> (c1.hls.hue, c1.hls.lightness, c1.hls.saturation)  # hls format
(0.5833333333333334, 0.6392156862745098, 0.8369565217391304)
>>> (c1.hsv.hue, c1.hsv.value, c1.hsv.saturation)      # hsv format
(0.5833333333333334, 0.9411764705882353, 0.6416666666666666)
>>> c2 = Color('#56a3f077')  # from hex
>>> c2
<Color #56a3f0, alpha: 0.467>
>>> c2.alpha  # alpha value
0.4666666666666667
>>> str(c2)   # hex format
'#56a3f077'
__eq__(other)[source]
Overview:

Get equality between colors.

Arguments:
  • other: Another object.

Returns:
  • equal (bool): Equal or not.

__getstate__() → Tuple[float, float, float, Optional[float]][source]
Overview:

Dump color as pickle object.

Returns:
  • info (Tuple[float, float, float, Optional[float]]): Dumped data object.

__hash__()[source]
Overview:

Get hash value of current object.

Returns:
  • hash (int): Hash value of current color.

__init__(c: Union[str, Tuple[float, float, float], Color], alpha: Optional[float] = None)[source]
Overview:

Constructor of Color.

Arguments:
  • c (Union[str, Tuple[float, float, float]]): Color value, can be hex string value or tuple rgb value.

  • alpha: (Optional[float]): Alpha value of color, default is None which means no alpha value.

__repr__()[source]

Return repr(self).

__setstate__(v: Tuple[float, float, float, Optional[float]])[source]
Overview:

Load color from pickle object.

Args:
  • v (Tuple[float, float, float, Optional[float]]): Dumped data object.

__str__()[source]

Hex format of this Color object.

property alpha

Alpha value, which means the transparent ratio (within \(\left[0.0, 1.0\right]\)).

:: note::

Setter is available.

classmethod from_hex(hex_: str)hbutils.color.model.Color[source]
Overview:

Load color from hexadecimal rgb string.

Arguments:
  • hex_ (str): Hexadecimal string, maybe starts with #.

Returns:
  • color (Color): Color object.

classmethod from_hls(h: float, l: float, s: float, alpha: Optional[float] = None)hbutils.color.model.Color[source]
Overview:

Load color from hls system.

Arguments:
  • h (float): Hue value, should be a float value in \(\left[0, 1\right)\).

  • l (float): Lightness value, should be a float value in \(\left[0, 1\right]\).

  • s (float): Saturation value, should be a float value in \(\left[0, 1\right]\).

  • alpha (Optional[float]): Alpha value, should be a float value in \(\left[0, 1\right]\), default is None which means no alpha value is used.

Returns:
  • color (Color): Color object.

classmethod from_hsv(h, s, v, alpha=None)hbutils.color.model.Color[source]
Overview:

Load color from hsv system.

Arguments:
  • h (float): Hue value, should be a float value in \(\left[0, 1\right)\).

  • s (float): Saturation value, should be a float value in \(\left[0, 1\right]\).

  • v (float): Brightness (value) value, should be a float value in \(\left[0, 1\right]\).

  • alpha (Optional[float]): Alpha value, should be a float value in \(\left[0, 1\right]\), default is None which means no alpha value is used.

Returns:
  • color (Color): Color object.

classmethod from_rgb(r, g, b, alpha=None)hbutils.color.model.Color[source]
Overview:

Load color from rgb system.

Arguments:
  • r (float): Red value, should be a float value in \(\left[0, 1\right)\).

  • g (float): Green value, should be a float value in \(\left[0, 1\right]\).

  • b (float): Blue value, should be a float value in \(\left[0, 1\right]\).

  • alpha (Optional[float]): Alpha value, should be a float value in \(\left[0, 1\right]\), default is None which means no alpha value is used.

Returns:
  • color (Color): Color object.

property hls
Overview:

Get hls color system based color proxy. See HLSColorProxy.

Returns:
property hsv
Overview:

Get hsv color system based color proxy. See HSVColorProxy.

Returns:
property rgb
Overview:

Get rgb color system based color proxy. See RGBColorProxy.

Returns:

RGBColorProxy

class hbutils.color.model.RGBColorProxy(this: hbutils.color.model.Color, r: hbutils.color.model.GetSetProxy, g: hbutils.color.model.GetSetProxy, b: hbutils.color.model.GetSetProxy)[source]
Overview:

Color proxy for RGB space.

__init__(this: hbutils.color.model.Color, r: hbutils.color.model.GetSetProxy, g: hbutils.color.model.GetSetProxy, b: hbutils.color.model.GetSetProxy)[source]

Constructor of RGBColorProxy.

Parameters:
  • this – Original color object.

  • r – Get-set proxy for red.

  • g – Get-set proxy for green.

  • b – Get-set proxy for blue.

__iter__()[source]

Iterator for this proxy.

Examples::
>>> from hbutils.color import Color
>>>
>>> c = Color('green')
>>> r, g, b = c.rgb
>>> print(r, g, b)
0.0 0.5019607843137255 0.0
__repr__()[source]

Representation format.

Examples::
>>> from hbutils.color import Color
>>>
>>> c = Color('green')
>>> c.rgb
<RGBColorProxy red: 0.000, green: 0.502, blue: 0.000>
property blue

Blue value (within \(\left[0.0, 1.0\right]\)).

Note

Setter is available, the change will affect the Color object.

property green

Green value (within \(\left[0.0, 1.0\right]\)).

Note

Setter is available, the change will affect the Color object.

property red

Red value (within \(\left[0.0, 1.0\right]\)).

Note

Setter is available, the change will affect the Color object.

HLSColorProxy

class hbutils.color.model.HLSColorProxy(this: hbutils.color.model.Color, h: hbutils.color.model.GetSetProxy, l: hbutils.color.model.GetSetProxy, s: hbutils.color.model.GetSetProxy)[source]
Overview:

Color proxy for HLS space.

__init__(this: hbutils.color.model.Color, h: hbutils.color.model.GetSetProxy, l: hbutils.color.model.GetSetProxy, s: hbutils.color.model.GetSetProxy)[source]

Constructor of HLSColorProxy.

Parameters:
  • this – Original color object.

  • h – Get-set proxy for hue.

  • l – Get-set proxy for lightness.

  • s – Get-set proxy for saturation.

__iter__()[source]

Iterator for this proxy.

Examples::
>>> from hbutils.color import Color
>>>
>>> c = Color('green')
>>> h, l, s = c.hls
>>> print(h, l, s)
0.3333333333333333 0.25098039215686274 1.0
__repr__()[source]

Representation format.

Examples::
>>> from hbutils.color import Color
>>>
>>> c = Color('green')
>>> c.hls
<HLSColorProxy hue: 0.333, lightness: 0.251, saturation: 1.000>
property hue

Hue value (within \(\left[0.0, 1.0\right]\)).

Note

Setter is available, the change will affect the Color object.

property lightness

Lightness value (within \(\left[0.0, 1.0\right]\)).

Note

Setter is available, the change will affect the Color object.

property saturation

Saturation value (within \(\left[0.0, 1.0\right]\)).

Note

Setter is available, the change will affect the Color object.

HSVColorProxy

class hbutils.color.model.HSVColorProxy(this: hbutils.color.model.Color, h: hbutils.color.model.GetSetProxy, s: hbutils.color.model.GetSetProxy, v: hbutils.color.model.GetSetProxy)[source]
Overview:

Color proxy for HSV space.

__init__(this: hbutils.color.model.Color, h: hbutils.color.model.GetSetProxy, s: hbutils.color.model.GetSetProxy, v: hbutils.color.model.GetSetProxy)[source]

Constructor of HSVColorProxy.

Parameters:
  • this – Original color object.

  • h – Get-set proxy for hue.

  • s – Get-set proxy for saturation.

  • v – Get-set proxy for value.

__iter__()[source]

Iterator for this proxy.

Examples::
>>> from hbutils.color import Color
>>>
>>> c = Color('green')
>>> h, s, v = c.hsv
>>> print(h, s, v)
0.3333333333333333 1.0 0.5019607843137255
__repr__()[source]

Representation format.

Examples::
>>> from hbutils.color import Color
>>>
>>> c = Color('green')
>>> c.hsv
<HSVColorProxy hue: 0.333, saturation: 1.000, value: 0.502>
property brightness

Alias for value.

property hue

Hue value (within \(\left[0.0, 1.0\right]\)).

Note

Setter is available, the change will affect the Color object.

property saturation

Saturation value (within \(\left[0.0, 1.0\right]\)).

Note

Setter is available, the change will affect the Color object.

property value

Value value (within \(\left[0.0, 1.0\right]\)).

Note

Setter is available, the change will affect the Color object.