| Фильтры | - Glow |
Glow
Краткое описание
Компонент предназначен для получения эффекта свечения заданного изображения
Параметры
Методы
События
Свойства
Данные
Примеры
Простой пример использования эффекта подсвечивания для выделения иконок на кнопках при их нажатии
Add(MainForm,13098626,63,84)
{
Caption="Пример использования Glow"
Point(Handle)
link(onCreate,8184193:doLoad,[])
}
Add(ImageLoader,8184193,154,98)
{
FileName="c:\\Program Files\\HiAsm\\Int\\about.jpg"
DrawSource=2
link(onLoad,8184193:doDraw,[(198,104)(198,88)(142,88)(142,111)])
link(onDraw,9860787:doLoad,[])
}
Add(Image,9860787,238,105)
{
Left=30
Width=330
Height=95
}
Add(Image,16471886,238,161)
{
Left=30
Top=165
Width=330
Height=105
}
Add(Button,3717558,63,161)
{
Left=170
Top=120
link(onClick,6378366:doGamma,[])
}
Add(Gamma,6378366,154,161)
{
Level=90
link(onResult,16471886:doLoad,[])
link(Bitmap,9860787:ImageBitmap,[(160,149)(244,149)])
}
Add(MainForm,2953706,91,105)
{
Width=347
Height=97
Caption="Click to any image"
link(onCreate,14291898:doEvent1,[])
}
Add(ChildPanelEx,14017833,245,126)
{
Mode=1
link(Bitmap,2991197:Bitmap,[])
}
BEGIN_SDK
Add(EditMultiEx,10866702,21,21)
{
WorkCount=#5:##add|
DataCount=#6:Bitmap|
Width=230
Height=165
Point(##add)
link(##add,14180953:doWork2,[(52,27)(52,132)])
}
Add(Panel,11708775,56,140)
{
Left=20
Top=15
Width=43
Height=42
Layout="parent.tools"
BevelInner=0
}
Add(Image,10421666,98,70)
{
Left=1
Top=1
Width=41
Height=40
Align=5
HeightScale=50
ViewStyle=0
MouseCapture=0
Point(onMouseDown)
Point(onMouseUp)
Point(onDblClick)
link(onMouseDown,11321897:doWork2,[])
link(onMouseUp,14180953:doWork1,[(144,90)])
link(onDblClick,11321897:doWork3,[(151,97)])
}
Add(Glow,3653207,189,77)
{
Level=2
Background=-16777201
link(onResult,14063374:doWork2,[])
link(Bitmap,15486707:Var3,[(195,51)])
}
Add(DoData,16674847,161,126)
{
link(onEventData,14063374:doWork3,[(235,132)])
link(Data,15486707:Var2,[])
}
Add(GetDataEx,15486707,154,42)
{
Angle=3
link(Data,10866702:Bitmap,[(27,51)])
}
Add(HubEx,14180953,140,119)
{
link(onEvent,16674847:doData,[])
}
Add(HubEx,14063374,231,70)
{
Angle=3
link(onEvent,10421666:doLoad,[(235,62)(86,62)(86,76)])
}
Add(HubEx,11321897,147,70)
{
link(onEvent,3653207:doGlow,[])
}
END_SDK
Add(Icon,4134662,189,77)
{
Icon=[ZIPBE08000078DAED967B50D45514C73FCB6F7914C64379AC26684982C5B308374C17417CA006B9228A206F1095C702B2BC5FCBA2F94A334DB34C530309B30C04CD07E2403A1A3A36A133369385394E4530820D336ADB5DCB7018B47FEABFCE6FCEEFCEDCCF7CCF39F777CFBDF3039978C68E45BC2DA8B10007C04DB89822803FE78D562667482B28CE67E9F2148E1E3B4A8E369BB4CC15C427C5B3246E0955ABF454E82B28292FA1B0B4106DA1968CAC74D23569A4A426139B104B744C3491518B8858B48094941474AB2A29AFACA0B8AC84BCC23CB273B3C9CCC92465593289C909A8C3D584CD0B232B3B1BFDDA2A74AB2B29D195A22DD092959BC5B2B454E686CE25644E081A8D86AA357A11B382B2CA528ACA8B589997C38C99D399161C444C4C0CC5624E5B90CBD4C000264F998CFF247FAAAAAAE8B8DC417F7F3FD5FB6B98A89C48585818D5B535E417E589BAB4F8FAFAE2E3E343E4E248BA6FF5D0D07418D5D4002C8759327294824B5F5F62FB8EEDC4C7C75377A00EB7096E383939D179E33AEB376E6096A8CFC97934C1C1C19C3F7F0E5757576C6D6C914B12D73ABF273D339DF005E1F4DDEEA5FD423BC5C5C5787B7BE3E2E2828DB50D8E760E483213B13FB06EC33ABEB9D2C1C2C885646832B873F70E9BB76C664A800A0B0B0B626263F8AAFD3C35622D139E9F80A3A32366A666D88DB0432693B173D74E2E5CBA486050203ABD8E9FBA7E16EB2C203434945FBABBF8EE876BD41D3C8087BB3B0A85023B3B3BE4723992A835372F9743F5873873EE2CEE1EEE6CDDB69584A444929293B8DDFF1B5F9E3DC3087B3BCE88B1425781D25F89B5B535E6E6E6989999D1D27A9ADABA5A66CD0EA140E4ACACD21328F6C6DEC19ED6D6563C3C3DB0B2B242924BECABDEC7B193C7693CD288A79727E919E9444547D171E5327ABD1E67676763C3622ED65CDFD4C0F51B3F52DFD8C059519B7ABE9A5BE25BEEDEB31BB55A8DED705B4EB5B5D0DBDB2BF41DF8FBFB9399994950501036B6361C6F39C15E91AFF37A2711111174777773F3E64D542A153D3D3D34B734D3D7D747FBC576AE7E7B95AEAE2E0C0603FFDB7F66CAA67FE0858FE7A7F73F3E74CBFB8FE4CDC6D0A7363D527AC218FAA44E3D04FFC2283D660C5D917D7C08E911A354B7690E64251C25F561FE99517AE8BE54F739C4E7D7371C1EA08DE23C8BA1D6585556F6C7F076DD814F0E0EF04F49304A77EA3E10D2845DB03BF0C33D7B35FB3EFA8B578BAC62782B7BB390AEDEB2F51D9552B96DFBBB9A52CD8EFBFC3D91B512F40955B06AF51B896B82D72AD78D5FBF21FDCD8D1A238F1759736065AE16F2F20B0A6D878F70721EEFEA59545C525A2678B9C89A88B8085296A62E5BAE5CF1807BBD94969E911917A7C16F41042C5C14B938EAB9A747DB0C70DF97A397C4C4C6E137F7B5D0B0D795CA79A683B9BF4A3D3F1CBFC0A069C1D36728670EE6B3425401B3E7E0A754BEEA33798A7CD410FA80A9127E1395AFF8C85E1C8A4F12571BE2B27C61688E74FF1309EE6E39CE6310F796A4077B30F699672DC7C95D1EE66E480FEFB1BD83A362E428D3077C8C240D6EA0279EB41CF69495B591DB210DD5823299DCD4C4CCDC42921ED5BF32998909D2BF7D200D7F5BA9C1F0BBEA4FFF55789BCA704F787FDB18439370459BF53D458BF95D458B4C38458A00460B971BFF2C2C862856B8243AC84BB8AA1913430F92E12E5EE27615B15B06B2FE017F48C75D]
Transparent=-16777201
Point(doBitmap)
Point(onBitmap)
link(onBitmap,2991197:doLoad,[])
}
Add(ToolBarLayout,9113861,245,168)
{
Name="tools"
AutoSize=0
}
Add(Bitmap,2991197,245,77)
{
}
Add(Hub,14291898,147,119)
{
link(onEvent1,4134662:doBitmap,[(175,125)(175,97)])
link(onEvent2,13856942:doFor,[])
}
Add(For,13856942,189,126)
{
End=10
link(onEvent,14017833:##add,[])
link(onStop,9113861:doResize,[(233,139)(233,174)])
}
Замечания
Расчет областей свечения производится достаточно просто. На первом шаге на основе исходного изображения строится инверсная маска светимости каждого пикселя изображения по формуле Gxy = 255 - (Rxy + Gxy + Bxy) div 3. На втором шаге карта свечения применяется к исходному изображению по формуле для каждого пикселя Pxyc = MIN( Gxy/Level + Pxyc), 255), где Pxyc - одна из компонент цвета исходного изображения.
Обновление элемента: [svn]Glow.pas[/svn]
Обновление элемента: [svn]Glow.pas[/svn]
BB-code статьи для вставки
Всего комментариев: 0
(комментарии к статье еще не добавлены)