VB.NET 픽처박스에 움직이는 GIF 재생하기

2022. 12. 23. 17:19VB.NET

PictureBox에 Animated GIF를 그냥 찍어주면 움직이지 않는다. 이걸 움직이게 하려면 특별한 뭔가를 해줘야 한다. 그리 어렵지 않으니 아래 소스를 그대로 따라해보자.

우선 디자인창에서 픽처박스(Picture1)와 버튼(Button1)을 하나 추가해준후 Bitmap 형식의 변수를 하나 선언하자.

Dim bit As Bitmap

버튼 클릭시 GIF 파일을 불러와서 ImageAnimator에 넣어주면 된다.

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    bit = New Bitmap("xxx.gif")
    ImageAnimator.Animate(bit, New EventHandler(AddressOf OnFrameChannged))
End Sub

Private Sub OnFrameChannged(sender As Object, e As EventArgs)
    Invalidate()
End Sub

마지막으로 폼의 Paint 이벤트에 아래 소스 추가하면 끝

Private Sub Form1_Paint(sender As Object, e As PaintEventArgs) Handles Me.Paint
    If bit IsNot Nothing Then
        ImageAnimator.UpdateFrames()
        Dim g As Graphics = PictureBox1.CreateGraphics
        g.DrawImage(bit, New Point(0, 0))
    End If
End Sub

VB.NET으로 프로젝트를 진행하다보면 별거 아닌데 엄청 시간이 걸리는 작업이 있는 반면, 꽤나 복잡할것 같은데 의외로 간단히 해결되는 경우도 많으니 항상 검색을 생활화하자.

반응형