人人做人人澡人人爽欧美,国产主播一区二区,久久久精品五月天,羞羞视频在线观看免费

當(dāng)前位置:蘿卜系統(tǒng)下載站 > 技術(shù)開發(fā)教程 > 詳細(xì)頁面

用VB6完成電影特效

用VB6完成電影特效

更新時(shí)間:2022-07-21 文章作者:未知 信息來源:網(wǎng)絡(luò) 閱讀次數(shù):

  電影或電視中經(jīng)常可見到一些字幕或圖片的動(dòng)態(tài)變化特技,在制作多媒體教學(xué)軟件或廣告宣傳等多媒體演示文檔時(shí),也常常需要用到一些圖文的動(dòng)態(tài)變化效果。VB6.0作為Windows軟件的強(qiáng)有力開發(fā)工具,在多媒體程序設(shè)計(jì)方面具有廣闊的應(yīng)用前景。本文討論運(yùn)用VB6.0的定時(shí)器并結(jié)合Windows API函數(shù)實(shí)現(xiàn)圖片或文字的動(dòng)態(tài)縮放和漸隱漸現(xiàn)等特技效果。

  一、實(shí)現(xiàn)圖文動(dòng)態(tài)縮放和漸隱漸現(xiàn)特效的程序方法

  1、程序界面

  取窗體名為Form1,其Windowstate屬性設(shè)為2。在窗體Form1中設(shè)置如下控件和屬性:一個(gè)標(biāo)簽控件Label1,其backcolor等于form1的backcolor; bondstyle為0, Autosize為True。一個(gè)圖像控件image1,其Stratch和Visible均為True ; Bordstyle為0。兩個(gè)圖片框控件Picture1和Picture2, Visible屬性Picture1為False而Picture2為True; AutoRedraw屬性Picture1為True而Picture為False; ScaleModel屬性兩者均為Pixels; Bondstyle屬性兩者均為0。三個(gè)定時(shí)器控件Timer1,Timer2和Tirner3;命令按鈕控件數(shù)組cmd(0),......,Cmd(4),其caption屬性分別為:“文字縮放”、“圖片縮放”、“文字隱現(xiàn)”、“圖片隱現(xiàn)”和“退出”。

  2、文字的動(dòng)態(tài)縮放 

  通過VB6.0的定時(shí)器控件定時(shí)改變文字的Size屬性,就可達(dá)到文字被動(dòng)態(tài)放大或縮小的效果。程序中通過timer1的tuner過程來控制標(biāo)簽Label1的caption屬性文字大小。由cmd(0)觸發(fā)的cmd_click事件引發(fā)timer1_ time過程,通過一邏輯變量1(0)(數(shù)組元素)控制文字的變化方式,1(0) = true 時(shí)使字體動(dòng)態(tài)放大,1(0) = false時(shí)使字體動(dòng)態(tài)縮小。

  3、圖形的動(dòng)態(tài)縮放

  將圖像控件image1的stretch屬性設(shè)為true,可實(shí)現(xiàn)控件中圖片大小隨imagel控件大小的變化而變化。通過定時(shí)器timer2的tuner過程定時(shí)改變imagel控件的尺寸大小,就達(dá)到了使圖片動(dòng)態(tài)縮放的效果。由cmd(1)觸發(fā)的cmd_click事件將引發(fā)timer2_time過程,通過邏輯變量1(1)控制圖片變化的方式,1(1)=true時(shí)控制圖片動(dòng)態(tài)放大,1(1)=false時(shí)控制圖片動(dòng)態(tài)縮小。

  4、文字的漸隱漸現(xiàn)效果

  從字符串中取若干個(gè)文字作為標(biāo)簽Label1的caption值,如果從字串中截取的文字?jǐn)?shù)遞增(直到等于字串的全部字?jǐn)?shù)),則實(shí)現(xiàn)文字漸現(xiàn)效果;而截取的文字如果遞減(從字串的全部字?jǐn)?shù)減到0),則實(shí)現(xiàn)文字漸隱效果。通過定時(shí)器timer3的time:過程定時(shí)改變截取的字?jǐn)?shù),來達(dá)到此效果。由cmd(2)觸發(fā)的。md_click事件引發(fā)timer3 _time過程,通過邏輯變量1(2)控制文字變化的方式,1(2)=true時(shí)使文字漸現(xiàn),1(2)=false時(shí)使文字漸隱。

  5、圖形的漸隱漸現(xiàn)效果

  用Windows API函數(shù)BitBlt復(fù)制圖片的方法實(shí)現(xiàn)。BitBlt函數(shù)的使用方法為:

BitBlt hDestDC, x, y, nWidth, nHeight, hSrcDC, xSrc, ySrc,dwRop

  其中各參數(shù)的含義為:hDestDC和hSrcDC分別表示目標(biāo)設(shè)備描述表句柄和源設(shè)備描述表句柄。即要把圖片從hSrcDC復(fù)制到hDestDC。Picturellox控件的hDC屬性就是我們要用到的設(shè)備描述表句柄。x, Y表示目標(biāo)中左上角的位置,nWidth, nHeight表示目標(biāo)中的寬和高。即要把圖片復(fù)制到目標(biāo)設(shè)備描述表中的什么位置,以及復(fù)制多寬和多高。xsrc和ySrc表示源圖片中的左上角位置,即表示從什么位置開始復(fù)制。DwRop參數(shù)表示一種繪制方式,常用直接復(fù)制方式,這時(shí)就取SRCCOPY。

  二、實(shí)現(xiàn)圖文動(dòng)態(tài)縮放和漸隱漸現(xiàn)特效的程序代碼

‘對(duì)全局變量和API函數(shù)的通用聲明(API函數(shù)Sleep, BitBlt及其常參數(shù)SRCCOPY的聲明從略,可從API瀏覽器中復(fù)制、粘貼):
Dim 1(4) As Boolean, i as Long, s As String, zt As Integer
‘實(shí)現(xiàn)圖片漸現(xiàn)漸隱的通用過程:
Private Sub PicCpy(Optional strip As Integer=10, Optional delay As Integer=20)
 Dim plw As Integer, plh As Integer,p2 As Integer
 If 1(3)=True Then
  Picture1 = LoadPicture("c:\win98\安裝程序.bmp")
 Else
  Picture1=LoadPicture("")
 End If
 plw = Picturel.Width
 plh=Picturel.Height
 p2=0
 Do While p2<= plw
  BitBlt Picture2.hDC,p2,0, strip, plh, Picture1.hDC,p2,0,SRCCOPY
  p2=p2 + strip
  Sleep delay
  DoEvents
 Loop‘由于圖片寬度不一定是strip的整數(shù)倍,故下面再全圖復(fù)制一遍圖片:
 BitBlt Picture2.hDC,0,0,plw,plh,Picture1.hDC,0,0,SRCCOPY
End Sub

Private Sub Form_load()
 Label1.Font.Name="黑體"
 Image1.Top=0
 Image1.Left=0
 Picture2.Top=0
 Picture2.Left=Screen.Width - Picthne2.Width
 s="產(chǎn)生縮放和隱現(xiàn)效果的文字"
 zt=5'zt為字體大小控制變量
 i=0 'i為顯示文字時(shí)截取文字的字?jǐn)?shù)變量
End Sub

Private Sub Cmd_Click (Index As Integer)
 If 1(Index)=True Then
  1(Index)=False
 Else
  1(Idex) = True
 End If
 Select Case Index
  Case 0 '激活timer1的timer過程
   Timer1.Enabled=True
   Timer1.Interval=50
   ...... 'Case1, 2與上述類似,分別激活timer2, timer3的timer過程
  Case 3 '調(diào)用圖片復(fù)制過程Piccpy

   PiCpy 10, 50
  Case 4‘結(jié)束程序運(yùn)行
   Unload Me
   End
 End Select
End Sub
Private Sub Timer1_Timer() '實(shí)現(xiàn)文字縮放的過程
 If 1(0)=Trun Then
  zt=zt<+5
 Else
  Zt=Zt-5
 Else If
  If zt>50 or zt<=5 Then
   Timer1.Enabled=False
  End If
  With Label1
   .Font.Size=zt
   .Left=(Form1.Width - Lable1.Width) /2
   .Top=(Form1.Height - Label1.Height)/2
  End With
  Label1.Caption=s
End Sub

Private Sub Timer2_Timer() '實(shí)現(xiàn)圖片縮放的過程
 If 1(1)=True Then '使圖片放大
  Image1.Width=Image1.Width+Form1.Width/10
  Image1.Height=Image1.Height+Form1.Height/10
 Else '使圖片縮小
  Image1.Width=Image1.Width - Form1.Width/10
  Image1.Height=Image1.Height - Form1.Height/10
 End If
 If (Image1.Width >=Form1.Width/2) or (Image1.Width <=Form1.Width/10) Then
  Timer2.Enabled=False
 End If
  Image1=LoadPicture("c:\win98\安裝程序.bmp")
 End Sub

Private Sub Timer3.Timer()
 Label1.Font.Size = 30
 If 1(2)=True Then
  i=i+l
 Else
  i=i一1
 End If
 If i >=Len(s) on i<1 Then
  Timer3.Enabled=False
 End If
 If i >=0 Then
  Label1.Caption=Left$(s,i)
 End If
End Sub

  以上程序在VB6.0和Windows98/2000環(huán)境下調(diào)試通過。

溫馨提示:喜歡本站的話,請(qǐng)收藏一下本站!

本類教程下載

系統(tǒng)下載排行

網(wǎng)站地圖xml | 網(wǎng)站地圖html
主站蜘蛛池模板: 九寨沟县| 延吉市| 镇远县| 九龙城区| 新宾| 谢通门县| 昆山市| 连云港市| 康保县| 恭城| 雅安市| 连城县| 靖宇县| 和田市| 彭州市| 永清县| 泸西县| 象山县| 南华县| 安塞县| 瑞金市| 大足县| 崇信县| 和平县| 牙克石市| 绥宁县| 南岸区| 兰坪| 昌黎县| 德惠市| 九台市| 历史| 纳雍县| 甘德县| 崇信县| 云梦县| 秦皇岛市| 迁西县| 修武县| 逊克县| 麦盖提县|