, convertTo='signed', clip=False)[source]

Rescale RGB colors.

This function can be used to convert RGB value triplets from the PsychoPy signed color format to the normalized OpenGL format.

PsychoPy represents colors using values between -1 and 1. However, colors are commonly represented using values between 0 and 1 when working with OpenGL and various other contexts. This function simply rescales values to switch between these formats.

  • rgb (array_like) – 1-, 2-, 3-D vector of RGB coordinates to convert. The last dimension should be length-3 in all cases, specifying a single coordinate.

  • convertTo (str) – If ‘signed’, this function will assume rgb is in OpenGL format [0:1] and rescale them to PsychoPy’s format [-1:1]. If ‘unsigned’, input values are treated as OpenGL format and will be rescaled to use PsychoPy’s. Default is ‘signed’.

  • clip (bool) – Clip values to the range that can be represented on a display. This is an optional step. Default is False.


Rescaled values with the same shape as rgb.

Return type



The convertTo argument also accepts strings ‘opengl’ and ‘psychopy’ as substitutes for ‘signed’ and ‘unsigned’, respectively. This might be more explicit in some contexts.


Convert a signed RGB value to unsigned format:

rgb_signed = [-1, 0, 1]
rgb_unsigned = rescaleColor(rgb_signed, convertTo='unsigned')

Back to top