думаю вам придется разбить изображение на компоненты, заготовить все меняющие цвета компоненты в разных цветах, описать общую картинку в виде json модели (метаданные: какой компонент по каким координатам расположен, и его варианты) обработать и скомпоновать на канвасе с помощью js общую картинку. Затем отслеживая действия по мыши, выполнять замену тех или иных блоков в соответствии с метаданными.