Прочтите о моем ответе на «тонирование» изображения здесь: Как использовать градиентную карту для тонирования холста HTML5 с изображением на холсте.
Вы всегда можете очень легко манипулировать пиксельными данными изображения, чтобы выделить другой оттенок, нежели его исходный оттенок (или вообще не изменять его, если вы усредняете RGB, получая серое изображение).
Так что это как минимум один вариант.
Что бы вы сделали здесь: вместо использования изображения в качестве текстуры, нарисуйте изображение на временном холсте, а затем измените оттенок всего этого холста с помощью палитры цветов, затем используйте этот холст в качестве шаблона. (как изображения, так и полотна являются допустимыми данными для создания рисунков)