Как заменить основной цвет в изображении?
Имеется растровое изображение 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