AGB  ·  Datenschutz  ·  Impressum  







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

Kleines GIF Problem

Ein Thema von bobo220673 · begonnen am 14. Mai 2009 · letzter Beitrag vom 17. Mai 2009
Antwort Antwort
Seite 1 von 2  1 2      
bobo220673

Registriert seit: 25. Okt 2005
Ort: Schmon
15 Beiträge
 
Delphi 2005 Architect
 
#1

Kleines GIF Problem

  Alt 14. Mai 2009, 21:33
Hallo!
Ich habe ein kleines GIF Problem, und hoffe Ihr könnt mir da weiterhelfen...

Ich versuche gerade GIF-Animationen Frameweise als Bitmap zu speichern ( was auch klappt ). Dazu verwende ich TGIFImage und packe die Frames einfach in ein TBitmap wo ich dann speicher ( bitmap.Assign(GIF.Images[x]); )

Das Problem was ich habe ist nur bei den Gifs wo sich Bereiche ändern. Die Bilder werden zwar gespeichert, passen aber in der Größe nicht zu den anderen Grafiken. Da ich die gespeicherten Bitmaps aber wieder zu einer Animation zusammen setze hat die neue Animation dann bei diesen Gifs Fehler. Gibt es für die Gifs wo sich nur die Bereiche ändern vieleicht ne andere Möglichkeit die einzelnen Bilder zu speichern ?
Jens Lutterklas
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Kleines GIF Problem

  Alt 14. Mai 2009, 21:50
Das heißt, du hast GIFs wo sich bei denen nicht ganze Frames ändern, sondern wo sich nur Teile des Frames ändern oder wie kann ich das wo verstehen?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
bobo220673

Registriert seit: 25. Okt 2005
Ort: Schmon
15 Beiträge
 
Delphi 2005 Architect
 
#3

Re: Kleines GIF Problem

  Alt 14. Mai 2009, 22:08
Ja, es werden nur Bereiche pro Frame geändert und damit passt dann die neue Animation nicht mehr die ich später aus den Frames erstellen will.Ich hab mal so eine Gif + Ausgabe angehängt.
Miniaturansicht angehängter Grafiken
test_715.png  
Angehängte Grafiken
 
Jens Lutterklas
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Kleines GIF Problem

  Alt 14. Mai 2009, 22:34
Die Lösung liegt doch eigentlich auf der Hand. Du nimmst ein Bitmap mit der Größe des GIFs. In ein zweites kopierts du den Frame aus dem GIF. Dann kopierst du das zweite Bitmap in das erste und speicherst das ab.

Eventuell kann man ein Bitmap auch nachträglich noch vergrößern oder es gibt noch ander Möglichkeiten, da ich nicht weiß, welche Möglichkeiten die von dir verwendeten Bibliotheken bieten.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
bobo220673

Registriert seit: 25. Okt 2005
Ort: Schmon
15 Beiträge
 
Delphi 2005 Architect
 
#5

Re: Kleines GIF Problem

  Alt 14. Mai 2009, 22:43
Habe ich versucht. Wenn ich das kopiere passen die Positionen nicht.
Jens Lutterklas
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Kleines GIF Problem

  Alt 14. Mai 2009, 22:44
Hm, in dem PNG sieht es aber so aus, als wenn der Ursprung immer links oben wäre.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
bobo220673

Registriert seit: 25. Okt 2005
Ort: Schmon
15 Beiträge
 
Delphi 2005 Architect
 
#7

Re: Kleines GIF Problem

  Alt 14. Mai 2009, 22:51
Bei Bild 7 und 8 von unten siehste das mit den Positionen. Denke das muss anders gehen, nur wie weiss ich nicht...
Jens Lutterklas
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.686 Beiträge
 
Delphi 2007 Enterprise
 
#8

Re: Kleines GIF Problem

  Alt 14. Mai 2009, 23:53
Es wäre evtl. nicht unwichtig zu wissen welches TGIFImage du benutzt. Bei Torry finde ich nämlich ein paar mit diesem Namen. Ich vermute mal ganz stark, dass irgendwo darin die Ursprünge der Frames auftauchen - sei es als array of TPoint, oder als Feld einer Klasse für ein Frame des GIFs oder wie auch immer, je nach Organisation in der Klasse. In der ursprünglichen Datei muss es ja zumindest stehen, sonst würde das ja kein Player der Welt schaffen Dies dann in der Klasse auszulassen wäre schon sehr nachlässig.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
bobo220673

Registriert seit: 25. Okt 2005
Ort: Schmon
15 Beiträge
 
Delphi 2005 Architect
 
#9

Re: Kleines GIF Problem

  Alt 15. Mai 2009, 00:02
Also ich verwende "GIFImg" im Quelltext steht "This source code is adapted from the original TGIFImage written by Anders Melander.".
Ich habe aber auch verschiedene Gifengines versucht. Immer das gleiche Ergebnis. Es klappt, aber sobald so ein "komisches" Gif kommt is vorbei...
Jens Lutterklas
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.686 Beiträge
 
Delphi 2007 Enterprise
 
#10

Re: Kleines GIF Problem

  Alt 15. Mai 2009, 00:28
Riecht nach dem 6. Eintrag der Torry Kategorie die ich verlinkt habe. Von dort aus findet sich auch der Link zur Seite des Projektes. Von dort habe ich mal die aktuellste Version heruntergeladen (für D7-D2009), in der sich auch eine Hilfe befindet. Dieser ist wiederum zu entnehmen, dass einzelne Frames in einer Liste der Klasse TGIFSubImage gekapselt sind, weeeelche wiederum die Property BoundsRect besitzt:
Zitat von TGIFImage Hilfe:
BoundsRect
Specifies the bounding rectangle of the frame, relative to the GIF image.
Edit: Alternativ bieten sich an selber Stelle sogar noch die Properties "Left" und "Top" an, was ja sogar schon doppelt gemoppelt ist.
Edit2: Heh, Left und Top greifen sogar auf genau das selbe private Feld der Klasse zu. Also kannst du wirklich problemlos das benutzen was dir optisch im Code besser gefällt =)

So, oder so ähnlich hätte eine Recherche ausfallen können
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 20:50 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