@iosdev58

Как совместить два изображения через параметры о цвете RGB?

Привет.
У меня вопрос от диванного программиста, запутался и не пойму в какую сторону мне искать.

Есть некое изображения которое представлено в формате RGB, т.е. у меня есть три планара-массива с данными [R], [G], [B]. Задача на это изображение наложить чистый белый (красный/фиолетовый/...) фон с прозрачностью 30%.

То есть если это описать графическим видом
[один слой это исходное изображение]
[второй равномерный белый слой с прозрачностью 30%]

Задача осуществить это с помощью модификаций значений RGB, т.е. не графическим способом, а работой с непосредственными данными о цвете. Вопрос в сторону какого алгоритма мне смотреть?
  • Вопрос задан
  • 2287 просмотров
Пригласить эксперта
Ответы на вопрос 3
Самая простая формула в Вашем случае :
R = front_R * 0.7 + back_R * 0.3
G = front_G * 0.7 + back_G * 0.3
B = front_B * 0.7 + back_B * 0.3

Есть более сложные алгоритмы
Ответ написан
Комментировать
Adamos
@Adamos
Школьная же задача. Одна сторона прямоугольного треугольника - 100%, вторая - дельта (разность) между значением цвета картинки и цвета наложения. Отмеряем нужный процент, проводим перпендикуляр к процентной стороне до пересечения с гипотенузой, определяем его высоту, меняем значение цвета на эту величину.
Дельта / 100% = Величина изменения / Нужный процент.
Величина изменения = Дельта * Нужный процент / 100%.
Ответ написан
Комментировать
ErmIg
@ErmIg
Программист
Для каждой точки каждого канала RGB:
dst  = (foreground*transparency + background*(255 - transparency))/255;

Здесь предполагается, что у нас 1 байт на канал. Прозрачность может быть как одинаковой для всего изображения, так и меняться от точки к точке.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы