我正在使用Visual Basic进行编码。不过我有点问题。
对于我的程序,我需要分层GIF / PNG。我已经通过使用.DrawImage()
完成了这项工作。但是,GIF是无生命和静态的。
我尝试使用ImageAnimator类,但是,我有点黑暗。我尝试使用MSDN中的示例代码,但它对我不起作用。这可能是因为我不太了解它。
Private animatedImage As New Bitmap(My.Resources._a_takingnotes)
Private currentlyAnimating As Boolean = False
Public 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
Private Sub OnFrameChanged(ByVal o As Object, ByVal e As EventArgs)
'Force a call to the Paint event handler.
Me.Invalidate()
End Sub
Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs)
'Begin the animation.
AnimateImage()
'Get the next frame ready for rendering.
ImageAnimator.UpdateFrames()
'Draw the next frame in the animation.
e.Graphics.DrawImage(Me.animatedImage, New Point(0, 0))
PictureBox2.Image = Nothing
PictureBox2.Image = animatedImage
End Sub
以上是应该为"(a)takingnotes.gif"制作动画的代码。 (称为资源)。
它返回PictureBox中第一帧的静态图像。
谢谢!
编辑:在加载时调用AnimateImage()
,这不起作用。我还测试了每个Timer Tick,它也没有用。