Нужно преобразовать значение RGB в систему XYZ, затем на диаграмме xy (цветовой локус, CIE 1931) провести луч из точки белого (для заданого источника света A, C, D65...) через заданую точку xy. Точка пересечения луча с кривой спектральных цветов даст доминирующую длину волны. Для пурпурных цветов луч проводится в противоположную сторону. Обычно для них ставится штрих у лямбды. С програмной точки зрения можно использовать сплайны. Литература: Джадд, Вышецки.