Animiertes GIF laden und speichern

Anfängerfragen zum Programmieren mit PureBasic.
Dare Devil
Beiträge: 237
Registriert: 17.10.2008 18:24
Kontaktdaten:

Animiertes GIF laden und speichern

Beitrag von Dare Devil »

Hallo,
versuche schon die ganze Zeit ein animiertes GIF in PB zu laden... Ich will die einzelnen Frames des GIFs in separate Image-Objekte laden, um sie dann z.B. mit SaveImage() in eine BMP speichern zu koennen... Umgekehrt will ich auch einzelne BMPs als animiertes GIF abspeichern koennen...

Geht das irgendwie mit der WinAPI? Hab im Internet die ganze Zeit danach gesucht aber nichts (anstaendiges) gefunden...

Oder kann man eine Lib dafuer verwenden?


Jede Loesung is mir recht, hauptsache es funktioniert endlich...
Bild + Bild

Bild
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

du kannst es über die Movie-Lib probieren..

damit kannst du meines wissens animierte gifs abspielen.
schau dir RenderMovieFrame an, damit kannst du frameweise in ein Sprite oder Image rendern...

ansonsten müßtest du dir die Beschreibung vom gif-algorithmus suchen und dir den decoder selber stricken.

also animierte gifs sind eigentlich nicht so sehr das standard-format für nicht-web oberflächen.

wenn sichs vermeiden läßt, schlepp deine ressourcen gleich auf ne andere weise mit.

... und wenns dir nur darum geht, irgendeine animierte gif auseinander zu pflücken,
frag mal google nach AniMake, damit kannst du das machen und brauchst dir keinen wolf coden.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Dare Devil
Beiträge: 237
Registriert: 17.10.2008 18:24
Kontaktdaten:

Beitrag von Dare Devil »

Kaeru Gaman hat geschrieben:du kannst es über die Movie-Lib probieren..

damit kannst du meines wissens animierte gifs abspielen.
schau dir RenderMovieFrame an, damit kannst du frameweise in ein Sprite oder Image rendern...

ansonsten müßtest du dir die Beschreibung vom gif-algorithmus suchen und dir den decoder selber stricken.

also animierte gifs sind eigentlich nicht so sehr das standard-format für nicht-web oberflächen.

wenn sichs vermeiden läßt, schlepp deine ressourcen gleich auf ne andere weise mit.

... und wenns dir nur darum geht, irgendeine animierte gif auseinander zu pflücken,
frag mal google nach AniMake, damit kannst du das machen und brauchst dir keinen wolf coden.

Zwar kann man mit der Movie-Lib GIF's abspielen, jedoch funktioniert der Befehl RenderMovieFrame fuer die GIFs nicht... leider...

ja eben... bei "AniMake" sieht man ja mal, dass es irgendwie moeglich sein muss, GIFs su "auseinander zu pfluecken"...
Bild + Bild

Bild
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

natürlich ist es möglich, denn z.b. das Webgadget kann es ja auch darstellen,
und die MovieLib ja auch.
nur sind diese Elemente eben darauf ausgelegt, die gesamte Animation zu zeigen
und nicht um Zugriff auf die Einzelframes zu gewähren.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Dare Devil
Beiträge: 237
Registriert: 17.10.2008 18:24
Kontaktdaten:

Beitrag von Dare Devil »

Im "Tipps und Tricks"-Bereich des englischen Forums gibt es die Loesung zu meinem Problem:
An dieser Stelle moechte ich mich bei einem hilfsbereitem Chatter im PB-IRC bedanken

http://www.purebasic.fr/english/viewtopic.php?t=27575


:allright:


Mit LoadGifFrames() kann man dann die einzelnen frames laden....


aber fuer das speichern eines GIFs habe ich immer noch keine Loesung...
Bild + Bild

Bild
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

oy!

yo das ist echt ne latte.... und localmotions kommentar ist auch absolut passend:
Nightmare does not describe the Animated GIF format accurately. Living Hell better describes it.

... was willst du denn eigentlich bauen?
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
KatSeiko
Beiträge: 367
Registriert: 19.07.2008 07:47

Beitrag von KatSeiko »

Das Problem ist eigentlich, dass GIF kein freies Format ist. Damit herumzuhantieren erfordert ansich Lizenzgebühren...
Win7 Ultimate x64, PureBasic 5.11

There is no substitute..
BildBildBild
Benutzeravatar
Xaby
Beiträge: 2144
Registriert: 12.11.2005 11:29
Wohnort: Berlin + Zehdenick
Kontaktdaten:

Beitrag von Xaby »

KatSeiko hat geschrieben: Das Problem ist eigentlich, dass GIF kein freies Format ist. Damit herumzuhantieren erfordert ansich Lizenzgebühren...
Das hatte schon unser Informatiklehrer vor 10 Jahren gesagt und ich habe
nie verstanden, was er damit eigentlich sagen wollte.

JPEG soll ja auch nicht wirklich frei sein und es gibt wohl immer noch
irgendwelchen Rechtsstreits darum, dass die Leute, die JPEG-Decoder einfach
so basteln auch Gebühren zahlen sollen.

@Dare Devil
Was kann GIF, was AVI nicht kann?

Die meisten Programme unterstützen heute auch AVI-Dateiein.
Die kannste sogar selbst erstellen ohne große Kenntnisse.

Nimmste unkomprimierte BMPs und fügst die mit einigen EndFrame-Bytes
aneinander und dann haste schon ne Videodatei.
Die Header von RIFF-Dateien sind auch sehr einfach gehalten.

Also wenn du ein Transport / Export-Format benötigst.

Ansonsten kannste dir auch was eigenes zusammen schustern,
oder eine externe LIB nutzen.

Fragste am besten mal:

Pixtix-Erschaffer Jilocasin
http://www.purebasic.fr/german/viewtopi ... ght=pixtix
oder
PureGraphicShop-Erfinder Franky
http://www.purebasic.fr/german/viewtopi ... ght=pixtix

:roll:
Kinder an die Macht http://scratch.mit.edu/
Dare Devil
Beiträge: 237
Registriert: 17.10.2008 18:24
Kontaktdaten:

Beitrag von Dare Devil »

Hallo.
Das wusste ich nicht. Also wenn ich jetzt ein Programm dafuer schreibe, fallen tatsaechlich Linzenzgebuehren an?

Vielleicht sollte ich euch von meinem Vorhaben erzaehlen (dann kann ich auch gleich Kaeru's Frage beantworten). Ich arbeite an einer Art "Sprite Creator" (genauen namen habe ich noch nicht), mit dem man Sprites aus diversen Quellmaterialien "rippen" kann - dazu gehoeren eben auch GIFs - weil diese im Internet weit verbreitet sind ...
Bild + Bild

Bild
Sven
Beiträge: 374
Registriert: 23.09.2004 12:01

Beitrag von Sven »

Das Lizenz-Problem ist inzwischen vom Tisch, würde ich sagen.
Das US-Patent ist am 20. Juni 2003 abgelaufen; im Vereinigten Königreich, Frankreich, Deutschland und Italien galt das Patent bis zum 18. Juni 2004, in Japan bis zum 20. Juni 2004 und in Kanada bis zum 7. Juli 2004.
Antworten