Updated to use CIELab for color manipulation.