播放GIF动画

 

Imports  System
Imports  System.Drawing
Imports  System.Windows.Forms

Public   Class Form1Class Form1

    
'创建图片对象
    Private animatedImage As  New Bitmap ("C:ani.gif")
    
Private currentlyAnimating As Boolean = False

    
'启动动画
    Public Sub AnimateImage()Sub AnimateImage()
        
If Not currentlyAnimating Then

            
'Begin the animation only once.
            ImageAnimator.Animate(animatedImage, _
            
New EventHandler(AddressOf Me.OnFrameChanged))
            currentlyAnimating 
= True
        
End If
    
End Sub


    
Sub OnFrameChanged(ByVal o As ObjectByVal e As EventArgs)
        
'强制刷新
        Me.Invalidate()
    
End Sub



    
Private Sub Form1_Paint(ByVal sender As ObjectByVal e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint
        AnimateImage()

        
'准备下一帧用以呈现
        ImageAnimator.UpdateFrames()

        
'画下一帧

        
'e.Graphics.DrawImage(Me.animatedImage, New Point(0, 0))'以原始图象大小画

        e.Graphics.DrawImage(
Me.animatedImage, Me.ClientRectangle)’以当前窗体客互区大小画
    
End Sub

End Class

 

在播放时会出现因刷新而带来的“屏闪”现象,需要考虑双缓冲或者其他方法来解决这一问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值