AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

GIF-Animtion mit TImage anzeigen?!

Ein Thema von Ghostleader · begonnen am 29. Sep 2010 · letzter Beitrag vom 24. Jan 2012
Antwort Antwort
Ghostleader

Registriert seit: 22. Aug 2009
Ort: Hilden
116 Beiträge
 
Delphi 2010 Professional
 
#1

GIF-Animtion mit TImage anzeigen?!

  Alt 29. Sep 2010, 20:35
Delphi-Version: 2010
Hey.
Ich möchte eine Gif-Animation anzeigen. Das geht aber per "Image1.Picture.LoadFromFile" nicht, weil die Datei sich nicht abspielt, sondern als Standbild erscheint...
2 Ideen:
1.)
Ich versuce mit einem Timer 6 Bitmaps nacheinander anzuzeigen.
Zitat:
Image1.Picture.LoadFromFile('C:\Pictures\fig1_0.bm p');
Image1.Picture.LoadFromFile('C:\Pictures\fig1_1.bm p');
...
2.)
Ich benutze eine Schleife...:
Zitat:
for i := x to 6 do
begin
Image1.Picture.LoadFromFile('C:\Pictures\fig1_' + IntToStr(i) + '.bmp');
x := x +1;
end;
Der Prozess läuft bei beiden Möglichkeiten natürlich so schnell ab, dass immer nur das letzte Bild angezeigt wird. Hat jemand eine Idee wie man das hinauszögern kann? So das jedes Bild einzelnd angezeigt wird, ohne dass es eine realistische Geschwindigkeit verliert (Das Bild soll nicht stocken, oder haken.)
Mfg Ghost
Michael

Geändert von Ghostleader (29. Sep 2010 um 20:43 Uhr)
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: GIF-Animtion mit TImage anzeigen?!

  Alt 29. Sep 2010, 21:04
Ich würde eher eine Komponente nehmen, die das von sich aus kann (z.B. TGifAnimator aus der JVCL)
Markus Kinzler
  Mit Zitat antworten Zitat
Ghostleader

Registriert seit: 22. Aug 2009
Ort: Hilden
116 Beiträge
 
Delphi 2010 Professional
 
#3

AW: GIF-Animtion mit TImage anzeigen?!

  Alt 29. Sep 2010, 21:25
Danke für den Tipp.
Ich habe jetzt folgenden Quelltext:

Code:
procedure TForm1.Timer1Timer(Sender: TObject);
var
  GIFimg: TGIFImage;
begin
  GIFImageDefaultAnimate := True;
  GIFimg:= TGIFImage.Create;
  try
    GIFimg.LoadFromFile('C:\Pictures\fig1_running.gif');
    Image1.Picture.Assign(GIFimg);
  finally
    GIFimg.Free;
  end;
end;
Dankeschön, funktioniert alles gut.
Jetzt habe ich nur noch den Schönheitfehler, dass mein Timer mit einem Intervall von 1 Sekunde,
zu schnell ist für das Gif-Picture, welches ca. 3-4 Sekunden laufen sollte.
Wenn ich Timer1.Intervall auf 3,4,5 oder höher setze, benötigt das Programm diese 3,4,5 Sekunden als "Ladezeit".
Aber damit komme ich noch klar .

Mfg Ghost
Michael
  Mit Zitat antworten Zitat
Y.Elm

Registriert seit: 19. Sep 2011
Ort: Berlin
21 Beiträge
 
Delphi 2010 Professional
 
#4

AW: GIF-Animtion mit TImage anzeigen?!

  Alt 24. Jan 2012, 11:56
Es ist nicht nötig, mehrere Bilder zu laden und sich daraus eine Animation zu basteln.
Ab Delphi 2007 wurde TGIFImage in Delphi integriert. Damit kann man ein animiertes GIF einfach in ein TImage laden und dieses wird automatisch abgespielt.
Dazu sind folgende Schritte nötig:
Delphi-Quellcode:
uses {...} GIFImg; // Ermöglicht einem TImage das Abspielen von GIFs
procedure TForm1.FormCreate(Sender: TObject);
begin
  GIFImageDefaultAnimate := True; // Animation aktivieren
  Image1.Picture.LoadFromFile('C:meineAnimation.gif'); // Bild laden
end;
Weitere Informationen und ein hilfreiches FAQ findet man auf dieser Seite.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:00 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz