1. Home
  2. RGBNAME procedure

RGBNAME procedure

Gets the name of the nearest colour to an RGB colour (D.B. Baird & R.W. Payne).

No Options

Parameters

RGB = scalars or variates RGB values
NAME = texts Names of nearest colours
EXACT = scalars or variates Indicates whether or not the colour name is an exact match to the RGB value

Description

Colours on a computer can be defined by their RGB values. These define the intensities of the red, green and blue components that are combined to form the colour. Many colours can also be defined by standard names, such as Crimson, Gold, Olive or Turquoise; for the full list see PEN. The names may be clearer and more convenient to use than the RGB values. Sometimes, however, only the RGB values may be available as, for example, when IMPORT reads background colours from Excel.

This procedure, therefore, provides a way of matching RGB values to the closest named colour. The RGB values are provided by the RGB parameter, in either a scalar or a variate, and the NAME parameter saves a text containing the names. The EXACT parameter can save a scalar or a text (according to the type of the RGB parameter) that contains one if the name is an exact match or zero otherwise.

 

Options: None

Parameters: RGB, NAME, EXACT.

Action with RESTRICT

Restrictions are ignored.

See Also

Directive: PEN.

Procedures: DCOLOURSDSCOLOURSGETRGB.

Functions: BLUEGRAYGREYGREENREDRGB.

Commands for: Graphics.

Example

CAPTION 'RGBNAME example'; STYLE=major
        
CAPTION 'Display colour names for Genstat default colours'; STYLE=minor
PEN 1...17; SAVE=PS[1...17]
VARIATE [VALUES=PS[]['colour']] Std_RGB
RGBNAME Std_RGB; Std_Colours
PRINT Std_Colours; JUST=left

CAPTION 'Generate some random colour names'; STYLE=minor
CALC RGB = RGB('white')*URAND(662355;20)
RGBNAME RGB; Colours
PRINT Colours; JUST=left

CAPTION !t('Excel file with data set from a variety trial,',\
        'where background cell colours indicate outliers and harvest date');\
        STYLE=minor
"Read data ignoring top row containing trial description"
IMPORT  [PRINT=*] '%DATA%/SouthlandBarley.xlsx'; CELL='A2'; ISAVE=pData

" Read RGB background colours from last two columns 
  (yellow colours indicate harvest week 2, and red
  colours mark plots affected by header malfunction) "
IMPORT  [PRINT=*; XLSXCONTENT=backcolour] '%DATA%/SouthlandBarley.xlsx';\
        CELL='L3:M'; COLUMNS=!T('WeekRGB','YieldRGB')

" Convert RGB values to colour names
  and show where the reds and yellows occur "
RGBNAME WeekRGB,YieldRGB; WeekColour,YieldColour
PRINT   Plot,Row,WeekColour,Yield,YieldColour; FIELD=2(6),10,8,10; \
        DECIMALS=2(0),*,2,*; JUST=2(right),left,right,left

"Fit best spatial model to full dataset ignoring outliers and harvest date"
VAROWCOLUMNDESIGN [ROWS=Row; COLUMNS=Column; REPLICATES=Rep; \
        FIXED=Entry; PLOTFACTOR=Plot; PRINT=best; \
        PBEST=model,components,Waldtests,means; MVINCLUDE=yvariate; \
        VCONSTRAINTS=positive; RSTRATEGY=optimal; TRYSPATIAL=always] Yield
VPLOT   [TITLE='Yield including outliers']

" Remove outliers marked with red "
CALC    Yield = MVINSERT(Yield; YieldColour .in. 'Red')
"Create variable indicating week of harvest (week 2 marked with yellow)"
CALC    Week2 = WeekColour .in. 'Yellow'

"Fit best spatial model, removing outliers including effect of harvest date "
VAROWCOLUMNDESIGN [ROWS=Row; COLUMNS=Column; REPLICATES=Rep; \
        FIXED=Entry + Week2; PLOTFACTOR=Plot; PRINT=best; \
        PBEST=model,components,Waldtests,means; MVINCLUDE=yvariate; \
        VCONSTRAINTS=positive; RSTRATEGY=optimal; TRYSPATIAL=always] Yield
VPLOT   [TITLE='Yield adjusted for harvest date excluding outliers']
Updated on April 15, 2025

Was this article helpful?