|
|
|
Правильная полупрозрачность (opacity) с указанием коэффициента
|
|||
|---|---|---|---|
|
#18+
Надо наложить битмап на битмап с указанием для одного из них степени пролупрозрачности. Так, как это делает фотошоп при наложении слоев, с пересчетом каждого пикселя. Все что гуглится по ключевым словам ведет к методу, в котором указывается один цвет как полностью прозрачный, но мне это не надо. Наверняка все уже давно написано, но что-то найти не могу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2018, 09:03 |
|
||
|
Правильная полупрозрачность (opacity) с указанием коэффициента
|
|||
|---|---|---|---|
|
#18+
Flying-home, Код покажи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2018, 10:00 |
|
||
|
Правильная полупрозрачность (opacity) с указанием коэффициента
|
|||
|---|---|---|---|
|
#18+
Соколинский БорисFlying-home, Код покажи. Так кода еще нет. Но уже кое-что нашел с помощью хитрого запроса "Delphi полупрозрачность -прозрачность" http://www.delphimaster.ru/cgi-bin/forum.pl?id=1243725965&n=7&p=1 Без GDI+, без OpenGL, без DirectX. Чисто средствами винды и процессора. Кажется, это то, что надо. Осталось только убедиться, что функция AlphaBlend не окажется deprecated. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2018, 10:28 |
|
||
|
Правильная полупрозрачность (opacity) с указанием коэффициента
|
|||
|---|---|---|---|
|
#18+
Flying-home, Она не deprecated, но с ней пому...чаться придется, ибо работает только с premult-картинками. Если скорость не критична, используй GDI+, ЕМНИП в демках от есть даже готовый пример. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2018, 10:56 |
|
||
|
Правильная полупрозрачность (opacity) с указанием коэффициента
|
|||
|---|---|---|---|
|
#18+
Соколинский БорисFlying-home, Она не deprecated, но с ней пому...чаться придется, ибо работает только с premult-картинками. Если скорость не критична, используй GDI+, ЕМНИП в демках от есть даже готовый пример.путаете, "с premult" layered-окна работают ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2018, 12:24 |
|
||
|
Правильная полупрозрачность (opacity) с указанием коэффициента
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan), Думаю, что не путаю, поскольку дофига времени на это потратил. Но на всякий случай себя проверил. В режиме AlphaFormat пикселы на подложке нужно вручную умножать на альфу (делать premult), сама функция не хочет. https://docs.microsoft.com/ru-ru/windows/desktop/api/wingdi/ns-wingdi-_blendfunction Dst.Red = Src.Red + (1 - Src.Alpha) * Dst.Red ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2018, 13:05 |
|
||
|
Правильная полупрозрачность (opacity) с указанием коэффициента
|
|||
|---|---|---|---|
|
#18+
Как я понял из примера с приведенной ссылки, premult (24-битной) должна быть только та картинка, которую накладываешь. Меня это устраивает, поскольку я сам ее рисовать буду. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2018, 13:32 |
|
||
|
Правильная полупрозрачность (opacity) с указанием коэффициента
|
|||
|---|---|---|---|
|
#18+
Тьфу, 4 бита на пиксель. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2018, 13:35 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39729086&tid=2040158]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
175ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
2ms |
| others: | 236ms |
| total: | 498ms |

| 0 / 0 |
