Entwickler-Ecke

Sonstiges (.NET) - APNG erstellen


VampireSilence - Mi 05.01.11 01:54
Titel: APNG erstellen
Also ich hab hier ein paar Bilder, die ich versuche zu einem APNG zusammenzufügen. Leider scheitert das Ganze schon recht früh, da ich zwar mittlerweile weiss, wie die "Bauteile" für ein APNG zusammengehören, allerdings nicht weiss, wie ich an diese Bauteile herankomme.

Quelle: user defined image

Die Bilder habe ich per Clipboard.GetImage() selbst importiert, ich habe also alle Daten, die man nur haben kann. Die Frage ist nur, wie ich eben jetzt da rankomme. Es gibt mittlerweile auch schon Demo Projekte, die zwar APNGs öffnen, sie jedoch nicht schreiben. Könnt ihr mir helfen ?

mfg
- VampireSilence


Kha - Mi 05.01.11 10:43

Der erste Schritt wäre doch wohl, aus den einzelnen Frames den IDAT-Chunk zu extrahieren. Was hast du denn schon versucht?


VampireSilence - Mi 05.01.11 15:28

Ja, richtig ich weiss ja schon, wie das zusammengehört. Nur habe ich jetzt hier ein paar Image()-Variablen, von denen ich nicht weiss, wie ich (bspw. den IDAT-Chunk) daraus extrahieren kann. Ich schätze mal, dass das was in der Variable steckt, auch noch garnicht als PNG formatiert ist, da man ja im Image.Save() auch erst das ImageFormat überhaupt angeben muss. Ich würde also die Datei erst speichern, dann das PNG wieder als ByteStream laden und jetzt ist da aber schon das nächste Problem: Wie erkenne ich in dem ByteStream dann, wo ein Abschnitt beginnt und wo er endet ? Das ist mein Hauptproblem.

mfg
- VampireSilence


Kha - Mi 05.01.11 15:58

user profile iconVampireSilence hat folgendes geschrieben Zum zitierten Posting springen:
Ja, richtig ich weiss ja schon, wie das zusammengehört.
Anscheinend nicht, denn in der PNG-Spezifikation sollte doch genaustens beschrieben sein, wo du welchen Chunk findest.

user profile iconVampireSilence hat folgendes geschrieben Zum zitierten Posting springen:
Ich würde also die Datei erst speichern, dann das PNG wieder als ByteStream laden
Nein, speichere direkt in einen MemoryStream.


Trashkid2000 - Mi 05.01.11 20:56

Hallo,
hast Du Dir denn mal den APNG Viewer von CodeProject angeschaut? URL:
http://www.codeproject.com/KB/graphics/APNGViewer.aspx
Ist zwar ein Viewer, aber damit sollte es doch auch machbar sein, ein APNG zu erstellen.
Ansonsten habe ich auf einer polnischen Seite auch noch einen "APNGCreator" gefunden:
http://board.info.pl/tutoriale/tworzenie-animacji-apng-biblioteka-zrodla-dema-t1235.html
(Demo und Source und dll downloadbar). Und auf der Seite ist auch eine gute Anleitung zur Verwendung der Bibliothek. Sollte Dir auf jeden Fall weiterhelfen.
LG, Marko