Вверх ↑
Этот топик читают: Гость
Разработчик
Ответов: 26113
Рейтинг: 2126
#16: 2020-01-08 01:56:09 ЛС | профиль | цитата
Aziz писал(а):
нет, опять черное окошко залитое цветом FillColor

А какой битмап применялся? Нужен именно 32-х битный с alpha-каналом. Иначе будете созерцать черный квадрат, пока в AlphaBitmap-e не установите TransparentColor=clNone, DeleteAlpha=true, PremultAlpha=true, те пока не создадите Alpha-канал. Учтите на будущее, что для нормальной работы Alpha-компонентов нужны именно 32-х битные картинки, а для получения нормального наложения, этот Alpha-канал должен быть еще и истинным, иначе будут созерцать ступеньки, а не плавные переходы, это в случае, если примените PremultAlpha для совместимости.

Редактировалось 3 раз(а), последний 2020-01-08 02:02:33
карма: 22

0
Ответов: 1291
Рейтинг: 47
#17: 2020-01-08 03:01:25 ЛС | профиль | цитата
nesco, хотел проверить, но таких перечисленных свойств не нашел в компоненте AlphaBitmap. Да, картинка вообще jpeg исходная.

--- Добавлено в 2020-01-08 03:07:27

Да, вы правы, nesco. В старой версии компонента нет таких свойств, в новой нашел. Все заработало! Спасибо большое.
(Вставить картинку):


Add(MainForm,2953706,21,105)
{
link(onCreate,14595347:doEvent2,[(237,125)(237,342)])
}
Add(AlphaResize,15701769,504,329)
{
Point(Result)
link(onResize,9384519:doLoad,[])
link(Bitmap,98738:Bitmap,[(510,261)(503,261)])
link(Width,16247686:Result,[(517,310)(265,310)])
link(Height,98738:Height,[(524,296)(517,296)])
}
Add(AlphaBitmap,98738,497,161)
{
HWidth=100
HHeight=100
TransparentColor=0
PremultAlpha=0
Point(Width)
Point(Height)
Point(doCreate)
Point(HWidth)
Point(HHeight)
}
Add(AlphaImage,9384519,574,329)
{
Width=384
Height=261
Align=5
Color=0
AlphaBlendValue=128
AlphaMode=1
Point(Width)
Point(Height)
Point(doRefresh)
Point(ImageWidth)
Point(ImageHeight)
Point(onResize)
}
Add(Math,16247686,259,259)
{
OpType=1
Op2=10
Default=300
link(onResult,14595347:doEvent1,[(355,265)(355,335)])
link(Op1,98738:Width,[(265,226)(510,226)])
link(Op2,12020190:Position,[(272,229)(251,229)])
}
Add(Hub,14595347,420,329)
{
InCount=2
OutCount=3
link(onEvent1,15701769:doResize,[])
}
Add(TrackBar,12020190,245,168)
{
Left=150
Top=200
Max=1000
Min=1
Position=300
link(onPosition,16247686:doOperation,[(289,174)(289,220)(247,220)(247,265)])
}


--- Добавлено в 2020-01-08 03:08:29

Но все же странно, почему у кого-то работало и с такой картинкой и настройками, а у кого-то нет?

Редактировалось 2 раз(а), последний 2020-01-08 03:08:29
карма: 3
Hiasm + Flowstone + CopperCube + GoDot + JS
0
Разработчик
Ответов: 26113
Рейтинг: 2126
#18: 2020-01-08 03:10:02 ЛС | профиль | цитата
Aziz писал(а):
хотел проверить, но таких перечисленных свойств не нашел в компоненте AlphaBitmap.

Значит, у тебя стоит не последняя версия с SVN.
nesco писал(а):
Да, картинка вообще jpeg исходная.

Ну на фиг тогда тебе Alpha-компоненты, если ты используешь jpeg, который априори не поддерживает alpha-канал? Из распространенных форматов нормальный 32-х битный alpha-канал поддерживают только png и ico, кстати, именно они и применяются в ОС. Tiff еще поддерживает, но он не шибко распространен. 32-х битный битмап же является промежуточным форматом. Его множество редакторов не понимают как alpha.

Редактировалось 6 раз(а), последний 2020-01-08 03:16:04
карма: 22

0
Ответов: 1291
Рейтинг: 47
#19: 2020-01-08 03:19:03 ЛС | профиль | цитата
Да просто когда начинал все это дело была мысль наложения графика на неподвижный фон. Чтобы например не рисовать координатную сетку постоянно динамически с графиком. Тут уже прозрачность и нужна была. Поэтому посчитал эти компоненты самыми универсальными что ли) Но как видишь, защиты от нубов в них нет) Хотя если эти свойства по умолчанию выключить, то все сразу бы заработало. То есть, не понимаешь что это за permute alfa - не включай и все будет работать.
Обновил пост выше - все заработало, спасибо!)

Редактировалось 2 раз(а), последний 2020-01-08 03:20:58
карма: 3
Hiasm + Flowstone + CopperCube + GoDot + JS
0
Разработчик
Ответов: 26113
Рейтинг: 2126
#20: 2020-01-08 03:28:49 ЛС | профиль | цитата
Aziz писал(а):
Хотя если эти свойства по умолчанию выключить, то все сразу бы заработало

Наоборот, включить, и только, если используется AlphaBitmap. Эти свойства создают alpha-канал, если его нет. Те, в любом случае, в компоненте создается 32-х битный битмап, но у 24-х битной картинки alpha-канал отсутствует, поэтому там создается непрозрачная подложка в качестве alpha-канала. PremeltAlpha создает из трех слоев (RGB) картинки alpha-маску в alpha-слое, но без alpha-переходов, те двухцветную (черный -- прозрачный, белый -- непрозрачный). Для получения истинной alpha-маски нужно иметь 256-ти уровневую градацию серого в alpha-слое. Но PremultAlpha (с включенным DeleteAlpha, с выключенным там немного другая песня, там происходит контрастирование alpha-канала) нельзя применять для 32-х битных картинок, тк этот режим убивает истинную alpha, делая ее двухцветной, те прозрачность/непрозрачность без переходов.

Редактировалось 8 раз(а), последний 2020-01-08 03:37:31
карма: 22

0
Ответов: 1291
Рейтинг: 47
#21: 2020-01-08 03:38:13 ЛС | профиль | цитата
Ясно. Отличное разъяснение работы компонента, спасибо! Я имел в виду что заработал бы конкретно этот не работающий пример если бы было выключено по умолчанию.
Как там сейчас по нулям все выключено:
PermuteAlfa=0
TransparentColor=0
Так пример работает. Но конечно полу прозрачности не будет, но мне она нужна не в фоне, а в графике тк он поверх него будет.

Редактировалось 1 раз(а), последний 2020-01-08 03:39:19
карма: 3
Hiasm + Flowstone + CopperCube + GoDot + JS
0
Разработчик
Ответов: 26113
Рейтинг: 2126
#22: 2020-01-08 03:43:37 ЛС | профиль | цитата
Aziz писал(а):
Как там сейчас по нулям все выключено:

Так это как раз включено, 0 -- это true в свойствах

@DeleteAlpha=Отключает полупрозрачность для режима PremultAlpha|14|0|True,False
@PremultAlpha=Создает пре-домноженное Alpha-смешение|14|1|True,False
карма: 22

0
Ответов: 1291
Рейтинг: 47
#23: 2020-01-08 17:02:59 ЛС | профиль | цитата
nesco, точно. Значит если по умолчанию поставить PremultAlpha тоже в true, то у новичков будут все типы картинок корректно работать)

Редактировалось 1 раз(а), последний 2020-01-08 17:03:50
карма: 3
Hiasm + Flowstone + CopperCube + GoDot + JS
0
Разработчик
Ответов: 26113
Рейтинг: 2126
#24: 2020-01-08 19:06:50 ЛС | профиль | цитата
Aziz писал(а):
если по умолчанию поставить PremultAlpha тоже в true, то у новичков будут все типы картинок корректно работать)

Будут, если только у них обновленный компонент, в первых версиях не было этого режима, и только с включенным DeleteAlpha. Но полная прозрачность потеряется у 32-х битных картинок.

Редактировалось 2 раз(а), последний 2020-01-08 19:08:54
карма: 22

0
24
Сообщение
...
Прикрепленные файлы
(файлы не залиты)