一道炫目的閃光在圖像上從左至右徐徐掠過(guò),相信如果把這樣的特效應(yīng)用到程序的界面上一定能為你的程序增色不少。這樣的特效到底是怎樣實(shí)現(xiàn)的呢?讓我們一起來(lái)分析一下,這是本特效在某一瞬間的截圖,可以看出沿著一條傾斜的掃描線,它周?chē)南笏囟及凑战鼜?qiáng)遠(yuǎn)弱(距掃描線)的規(guī)律增強(qiáng)亮度(當(dāng)然,掃描線并不顯示出來(lái),它只是一個(gè)抽象的概念,以方便我們的編程工作)。當(dāng)掃描線從圖像最左端平滑地移動(dòng)到圖像最右端的時(shí)候,由于視覺(jué)暫留作用,看起來(lái)就會(huì)有熠熠生輝的效果。那么怎樣加強(qiáng)像素的亮度呢?可不能直接增大像素的顏色值,因?yàn)橄袼氐念伾凳且粋€(gè)長(zhǎng)整形數(shù)值,使用4個(gè)字節(jié)表示,位的字節(jié)的值為0,其它3個(gè)字節(jié)依次是B、G、R值,所以要加強(qiáng)像素的亮度,就要分別增加B、G、R值的大小。由于這是個(gè)動(dòng)態(tài)特效,靜態(tài)圖片很難表達(dá)清楚,讀者可先運(yùn)行一下代碼以幫助理解。
ASPectratio="t">
為了使本特效更靈活、更實(shí)用,筆者定義了幾個(gè)參數(shù),可以通過(guò)參數(shù)對(duì)特效做調(diào)整以達(dá)到滿(mǎn)意的效果。
參數(shù)表-----------------------------------------------------
Angle 光照傾角,取值0到90之間,以角度為單位
WidthOfArea 光照區(qū)寬度,取值大于1的整數(shù),以像素為單位
Speed 光照區(qū)運(yùn)動(dòng)速度,取值大于1的整數(shù)
EnhanceRatio 光照強(qiáng)度參數(shù),取值大于1的整數(shù)
-----------------------------------------------------
好,原理就這么多,現(xiàn)在我們開(kāi)始動(dòng)手實(shí)現(xiàn)吧!打開(kāi)VB6.0,選擇新建標(biāo)準(zhǔn)EXE工程,在主窗口form1中繪制下表中所列控件并設(shè)置窗體和各控件的屬性。
控件
屬性
設(shè)置
Form1
Name
Form1
ScaleMode
3-pixel
PictureBox
Name
PicDest
ScaleMode
3-pixel
Picture
背景圖
PictureBox
Name
PicSource
ScaleMode
3-pixel
Picture
主體圖
Label
Name
LblA
Caption
角度
Textbox
Name
TxtA
Text
30
Label
Name
LblW
Caption
寬度
Textbox
Name
TxtW
Text
15
Label
Name
LblE
Caption
強(qiáng)度
Textbox
Name
TxtE
Text
15
Label
Name
LblS
Caption
速度
Textbox
Name
TxtS
Text
1
CommandButton
Name
Cmd1
Caption
開(kāi)始特效
生成最后的窗體。
ASPectratio="t">
為了使本特效更靈活、更實(shí)用,筆者定義了幾個(gè)參數(shù),可以通過(guò)參數(shù)對(duì)特效做調(diào)整以達(dá)到滿(mǎn)意的效果。
參數(shù)表-----------------------------------------------------
Angle 光照傾角,取值0到90之間,以角度為單位
WidthOfArea 光照區(qū)寬度,取值大于1的整數(shù),以像素為單位
Speed 光照區(qū)運(yùn)動(dòng)速度,取值大于1的整數(shù)
EnhanceRatio 光照強(qiáng)度參數(shù),取值大于1的整數(shù)
-----------------------------------------------------
好,原理就這么多,現(xiàn)在我們開(kāi)始動(dòng)手實(shí)現(xiàn)吧!打開(kāi)VB6.0,選擇新建標(biāo)準(zhǔn)EXE工程,在主窗口form1中繪制下表中所列控件并設(shè)置窗體和各控件的屬性。
控件
屬性
設(shè)置
Form1
Name
Form1
ScaleMode
3-pixel
PictureBox
Name
PicDest
ScaleMode
3-pixel
Picture
背景圖
PictureBox
Name
PicSource
ScaleMode
3-pixel
Picture
主體圖
Label
Name
LblA
Caption
角度
Textbox
Name
TxtA
Text
30
Label
Name
LblW
Caption
寬度
Textbox
Name
TxtW
Text
15
Label
Name
LblE
Caption
強(qiáng)度
Textbox
Name
TxtE
Text
15
Label
Name
LblS
Caption
速度
Textbox
Name
TxtS
Text
1
CommandButton
Name
Cmd1
Caption
開(kāi)始特效
生成最后的窗體。