Dekomprimieren von PNG mit zlib
Wie kann ich zlib-Bibliothek zu Dekomprimieren, wird eine PNG-Datei? Ich brauche zum Lesen eine PNG-Datei mit einem C unter gcc-compiler.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wie kann ich zlib-Bibliothek zu Dekomprimieren, wird eine PNG-Datei? Ich brauche zum Lesen eine PNG-Datei mit einem C unter gcc-compiler.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Habe ich code, wenn Sie eine grundlegende Java-Bibliothek zum Lesen/schreiben von PNG-Dateien: http://code.google.com/p/pngj/
Es unterstützt nicht palettierten Bildern, aber abgesehen von, dass[Aktualisiert: es unterstützt alle PNG-Varianten] es ist ziemlich komplett, einfach und der code hat keine externen Abhängigkeiten (d.h. es verwendet nur die standard-JSE-API, die enthält zip Dekompression). Und der code ist verfügbar. Ich denke, man könnte die Portierung auf C mit nicht viel Aufwand.Warum nicht libpng? Die PNG-Datei-format ist ziemlich einfach, aber es gibt viele verschiedene Variationen möglich-und encoding-Methoden, und es kann ziemlich mühsam, um sicherzustellen, dass Sie decken alle Fälle. So etwas wie libpng behandelt alle die Umwandlung und die Sachen für Sie automatisch.
fread
und Freunde?Falls dies eine Hausaufgabe, und Sie sind wirklich nur die standard-C-Bibliothek, die Sie werden suchen, auf der offiziellen PNG-Datei-format-Spezifikation: http://www.w3.org/TR/PNG/. Jedoch sind Sie sicher, dass Sie wirklich brauchen, um die Dekodierung der PNG-Datei? Wenn alles, was Sie tun müssen, ist zeigen Sie es irgendwie, Sie gehen auf den falschen Weg.
Wird es ziemlich kompliziert und zeitaufwändig zu schreiben, ein decoder für Allgemeine PNG-Datei, aber nicht schlimm für die einfachen. In der Tat, da das PNG-format ermöglicht für Stück komprimiert werden, um es zu tun, nur mit standard-C-Bibliotheken erfordern würde, Sie zu implementieren, gzip Dekomprimieren (eine angemessene Hausaufgaben für eine mid-level-undergrad-Kurs, aber meine Vermutung ist, dass Sie ausgegeben haben eine Menge zu besprechen Kompression algoirthms, bevor diese Ihnen zugeteilt wurde)
Jedoch, es ist nicht allzu schwierig, wenn Sie beschränken Sie sich auf nicht komprimierte non-interlaced PNG-Dateien. Ich schrieb einen decoder einmal in Python, das behandelt nur die einfachen Fälle, in ein paar Stunden, so bin ich sicher, es wird machbar sein in C.
Sie sollten wahrscheinlich Lesen Sie, wie eine Binär-Datei-format funktioniert und ein hex-editor statt einen text-editor zum betrachten der Dateien. In der Regel sollten Sie die Verwendung libpng zu handhaben png-Dateien-wie bereits erwähnt-aber wenn Sie wollen, Sie zu entschlüsseln, sich selbst Sie haben viel zu Lesen zu tun.
Empfehle ich die Lektüre dieses http://www.libpng.org/pub/png/book/chapter13.html