я, должно быть, старый маразматик, но функция hls2rgb (hls мне больше, чем hsb нравится. хотя различия непринципиальны. про hsc - "hue/saturation/contrast" я до сих пор не слышал. это какое-то новое цветовое пространство

) или обратная ей занимает 20 строк кода (не люблю я аттачить к ролику пушку для стрельбы по воробьям). ну а т.к. трансформ неодноцветных объектов в любом случае непредсказуем, трансформить надо одноцвет, поверх которого отрисованы тени и блики.
хотя я может быть и не о том? юзерский интерфейс надо вменяемый реализовать?