Форум программистов, компьютерный форум, киберфорум
Алгоритмы
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.52/25: Рейтинг темы: голосов - 25, средняя оценка - 4.52
 Аватар для Necronomicron
65 / 50 / 7
Регистрация: 09.11.2012
Сообщений: 219

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

07.12.2013, 11:51. Показов 4855. Ответов 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
1963 / 819 / 114
Регистрация: 01.10.2012
Сообщений: 4,766
Записей в блоге: 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
1963 / 819 / 114
Регистрация: 01.10.2012
Сообщений: 4,766
Записей в блоге: 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
1963 / 819 / 114
Регистрация: 01.10.2012
Сообщений: 4,766
Записей в блоге: 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
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru