HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

Animált GIF lejátszása programból


Példaprogram letöltése

392893 bájt

Animált képek lejátszására alkalmas megoldást keresünk mostani cikkünkben. A megoldás minden olyan formátum esetén alkalmazható, mely idő alapú képeket tartalmaz. Vagyis minden képkockának előre meghatározott ideig kell látszódnia.

A megvalósításhoz az ImageAnimator osztály felhasználására lesz szükségünk. Ismerkedjünk meg először ennek lehetőségeivel:
Animate
Osztály: System.Drawing.ImageAnimator
public static void Animate(
Image image, EventHandler onFrameChangedHandler
);
Az animáció indításához az Animate függvényt kell meghívunk.
Paraméterek
Image image
Az image paraméterben kell megadni a lejátszani kívánt animációt.
EventHandler onFrameChangedHandler
Meg kell adnunk egy eseménykezelő függvényt, mely akkor hívódik meg, amikor az animációban a következő képet kell megjeleníteni.
CanAnimate
Osztály: System.Drawing.ImageAnimator
public static bool CanAnimate(
Image image
);
A CanAnimate függvénnyel ellenőrizhetjük, hogy a megadott Image osztály tartalmaz-e idő alapú képsorokat.
Paraméterek
Image image
Az ellenőrizendő képet kell megadnunk.
Visszatérési érték
Igaz, ha az Image osztályban lévő kép animálható.
StopAnimate
Osztály: System.Drawing.ImageAnimator
public static void StopAnimate(
Image image, EventHandler onFrameChangedHandler
);
A StopAnimate leállítja a már elindított animációt.
Paraméterek
Image image
A leállítani kívánt animációt tartalmazó Image osztály.
EventHandler onFrameChangedHandler
Meg kell adnunk egy eseménykezelő függvényt, mely akkor hívódik meg, amikor az animációban a következő képet kell megjeleníteni.
UpdateFrames
Osztály: System.Drawing.ImageAnimator
public static void UpdateFrames();
Következő képkockára lépteti az animációt, így az Image kirajzolásakor már a soron következő kép jelenik meg.
UpdateFrames
Osztály: System.Drawing.ImageAnimator
public static void UpdateFrames(
Image image
);
Következő képkockára lépteti az animációt, így az Image kirajzolásakor már a soron következő kép jelenik meg.
Paraméterek
Image image
Az image paraméterben megadott kép kerül léptetésre.
A példaprogram
Az animációhoz szükségünk lesz egy animált GIF-re, melyet a program indulásakor betöltünk egy Bitmap osztályba.
  Private gif As Bitmap
  gif = New Bitmap("1.gif")
Az animáció elindítását az Animate függvényre bízzuk.
  Private Sub button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles button1.Click
    ImageAnimator.Animate(gif, New EventHandler(AddressOf OnNextFrame))
  End Sub
Az Animate függvénynek megadtuk az OnNextFrame nevű függvényünket, mely akkor kerül meghívásra, ha letelik az az idő, ami után a következő képkockát meg kell jelenítenünk. Ehhez érvénytelenítjük a Form területét, ami azt vonja maga után, hogy meghívásra kerül a Form Paint eseménye.
  Private Sub OnNextFrame(ByVal o As Object, ByVal e As EventArgs)
    Invalidate()
  End Sub
Létrehozunk a Form Paint eseményéhez egy eseménykezelőt, melyben elvégezzük a következő képkocka kirajzolását a Form-ra. Itt az UpdateFrames függvénnyel előkészítjük a következő képkockát a kirajzoláshoz, és a DrawImage függvénnyel meg is jelenítjük azt.
  Private Sub Form1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint
    Try
      ImageAnimator.UpdateFrames()
      e.Graphics.DrawImage(gif, New Point(Me.ClientSize.Width - 130, 10))
    Catch
    End Try
  End Sub

Cikksorozat

#IDKategóriaCikk címeSorozat
4397Windows.NET Framework konfigurálása az operációs rendszerben1. rész
4446Windows.NET Framework konfigurációs snap-in2. rész


Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!

Copyright © 1999-2012 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |