Как заменить основной цвет в изображении?

Имеется растровое изображение png. Это схематичное изображение, в которой основной цвет - голубой

Все цвета находятся в примерно таком диапазоне:

R_range = range(44, 123) G_range = range(87, 151) B_range = range(122, 175)

"Основной цвет" - самый темный, 44,87,122.

Мне необходимо сделать так чтобы градиент остался, но "основной цвет" стал бы (173, 0, 30)

Как такое можно сделать? Были мысли просто вычитать разницу (173-44, 0-151, 30-175), но цвета явно не так работают)

Так же пробовал RGB_transform предварительно превратив основное изображение в greyscale, но на выходе получаются совсем иные цвета


Ответы (1 шт):

Автор решения: Давид Манжула

Для таких целей лучше использовать не RGB, а HSL. Он позволяет задавать "смещение" цвета, не меняя оттенок. Или наоборот, менять яркость, не меняя основной цвет. В RGB такого добится довольно сложно.

Вот нагуглил один сниппет для конвертации между форматами, надеюсь поможет: https://gist.github.com/mathebox/e0805f72e7db3269ec22

→ Ссылка