Аватар для Necronomicron
65 / 50 / 7
Регистрация: 09.11.2012
Сообщений: 219

Как сложить два полупрозрачных цвета?

07.12.2013, 11:51. Показов 4937. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Что-то не могу разобраться, везде разные формулы и ни по одной не сходится. Если исходный цвет непрозрачный, то тогда всё просто (сверяюсь по Photoshop, режим смешивания Normal):
П = И + (Н - И) × аН, где П - полученный цвет, И - исходный, Н - накладываемый, аН - прозрачность накладываемого цвета (0 ÷ 1).
Но если исходный цвет полупрозрачный, то непонятно, куда применять значение прозрачности в формуле.
Если Н = #0000ff, а И = #00ff00 с прозрачностью 50%, то результаты при различных прозрачностях И будут такие:
0%: #0000ff
10%: #0018ef
20%: #002ad5
30%: #003ac5
40%: #0049b6
50%: #0055aa
60%: #005fa0
70%: #006996
80%: #00718e
90%: #007986
100%: #007f80
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
07.12.2013, 11:51
Ответы с готовыми решениями:

Предотвратить суммирование цвета при наложении полупрозрачных блоков
Доброго времени суток! Собственно вопрос в заголовке. При уменьшении ширины экрана блоки накладываются друг на друга, и в месте наложения...

Как сложить два плюс два? если оба числа символьные?
Не могу сложить два числа в символьном виде, что бы получить третье (как сумма двух первых), например 2+30 и хочу получить третье 230. Вот...

Как сложить цвета в VB?
Не получается сложить цвета... Стоит задача: динамически изменять цвет лейбла с помощью кнопки таким образом, чтобы при каждом новом...

7
 Аватар для OldFedor
7486 / 4150 / 474
Регистрация: 25.08.2012
Сообщений: 11,530
Записей в блоге: 11
07.12.2013, 11:56
Как вариант - сложить и к результату применить средневзвешенную прозрачность.
0
 Аватар для Necronomicron
65 / 50 / 7
Регистрация: 09.11.2012
Сообщений: 219
07.12.2013, 12:02  [ТС]
OldFedor, нет, в ответе получается нелинейная зависимость.
0
1974 / 830 / 115
Регистрация: 01.10.2012
Сообщений: 5,019
Записей в блоге: 2
07.12.2013, 13:06
Хороший пример: краски. В одном ведре литр красной 50% (концентрация), в другом литр напр темно-фиолетовой 20%.

c1 = (a = 0.5, r = 1, g = 0, b = 0)
c2 = (a = 0.2, r = 0.5, g = 0, b = 0.5)

Всего краски в 2 литрах 0.5 + 0.2 = 0.7, значит концентрация в одном литре 0.35. Альфу получили. Теперь по цветам: красной было 0.5 * 1 + 0.2 * 0.5 = 0.6 в двух литрах, значит в одном 0.3. И теперь делим на альфу 0.3 / 0.35 = 0.857. Синей: 0.2 * 0.5 / 2 / 0.35 = 0.142. Итого

c1 = (a = 0.35, r = 857, g = 0, b = 0.142)

Ну и конечно это "смешивание" где компоненты равноправны, есть и др режимы
0
240 / 218 / 46
Регистрация: 17.04.2010
Сообщений: 526
07.12.2013, 15:43
Смешивание цветов RGBA
1
1974 / 830 / 115
Регистрация: 01.10.2012
Сообщений: 5,019
Записей в блоге: 2
08.12.2013, 10:48
Цитата Сообщение от x128 Посмотреть сообщение
Да, зачем тратить слова, вот "тыц" ссылкой - и все дела

Только там речь идет не о "сложении", а о "композиции". Это соответствует тому что сначала рисуем одним цветом, а поверх него - другим, т.е. такая операция не коммутативна.
2
 Аватар для Necronomicron
65 / 50 / 7
Регистрация: 09.11.2012
Сообщений: 219
08.12.2013, 22:23  [ТС]
Igor3D, однако, по ссылке правильно, помогло. В случае с 0.5 и 0.2 будет не 0.7, а 0.5 + (1 - 0.5) × 0.2 = 0.6, другая формула.

Добавлено через 1 час 8 минут
Кстати, я ошибся в условии, накладываемый с прозрачностью 50%, а не исходный.
0
1974 / 830 / 115
Регистрация: 01.10.2012
Сообщений: 5,019
Записей в блоге: 2
08.12.2013, 22:34
Цитата Сообщение от Necronomicron Посмотреть сообщение
Igor3D, однако, по ссылке правильно, помогло. В случае с 0.5 и 0.2 будет не 0.7, а 0.5 + (1 - 0.5) × 0.2 = 0.6, другая формула.
На это я уже ответил в своем предыдущем посте Напомню что в случае перестановки слагаемых альфа та же самая 0.2 + (1 - 0.2) * 0.5 = 0.6, но вот RGB уже другие. Это нормально, но так Вы непрерывно "накапливаете", а вот напр интерполировать так не получится. Также если первое слагаемое черный цвет с хорошей альфой, то сколько ни складывай - черным останется, здесь нужна еще др модель. В общем все зависит от того какое "сложение" Вам нужно.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
08.12.2013, 22:34
Помогаю со студенческими работами здесь

Как сложить 2 цвета
допустим у кнопки есть фон ,как в css при наведении на кнопку сложить фон и дополнительный цвет(прозрачный)? ну допустим rgb(60,154,230)...

Два одномерных массива поэлементно сложить между собой - третий - сложить каждый элементы - вывести на экран
2 одномерных массива - сложить между собой - третий - сложить каждый элементы - вывести на экран. Помогите написать программу на...

Как сложить два значения?
Помогите, пожалуйста! Не могу понять как сложить между собой числа выводимые при помощи <output...

Как сложить два массива
Как сложить два массива и присвоит ответь третьему массиву int m={5,6,7}; int n={2,3,8}; in p;

Как сложить два графика
Здравствуйте! Два вопроса - легкий и не очень: 1) Скажите пожалуйста, а какой командой можно сложить два графика? 2) имею два...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

Новые блоги и статьи
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru