Chunks enthalten sämtliche Informationen, die in einer PNG-Datei gespeichert werden können. Dabei werden unterschiedliche Arten von Informationen auch in unterschiedlichen Chunks mit unterschiedlichen Typen gespeichert. Jeder Chunk besteht aus vier Komponenten.

Die erste Komponente ist eine 4 Byte Integer-Zahl, die die Länge des Datenteils enthält. Dabei zählen nur die Daten selbst, nicht die Länge des gesamten Chunks.
Als Typkennung wird eine 4 Byte Integer-Zahl verwendet, die festlegt, wie die im Chunk enthaltenen Daten zu interpretieren sind. Die einzelnen Bytes dürfen jeweils nur aus den ASCII-Zeichen a-z bzw. A-Z bestehen, zusammen bilden sie also den vier Zeichen langen Namen des Chunks.
Der Chunk-Name unterliegt einigen Regeln, die es einem Programm beim Einlesen eines Bildes erlauben, auch unbekannte Chunks handzuhaben. Die Regeln beziehen sich auf die Groß-/Kleinschreibung der einzelnen Buchstaben, oder anders gesagt, auf Bit 5 der einzelnen Bytes. Im ASCII-Zeichensatz unterscheiden sich die Groß- von den Kleinbuchstaben nur im 5. Bit, ist es gesetzt handelt es sich um einen Kleinbuchstaben, andernfalls um einen Großbuchstaben. Damit können also in dem vier Zeichen langen Chunk-Namen vier Bits kodiert werden, die allein durch die Groß-/Kleinschreibung abgelesen werden können.

In diesem Teil des Chunks stehen die eigentlichen Daten. Wie die Daten zu interpretieren sind, hängt vom Typ des Chunks ab.
Am Ende eines Chunks ist ein 4 Byte CRC (Cyclic Redundancy Check) gespeichert, der nach den standardisierten CRC Methoden berechnet wird (siehe [IS 84] oder [Int94]). Mit diesem Wert läßt sich prüfen, ob ein Chunk Fehler enthält, z.B. Fehler durch falsche Übertragung. Außerdem kann erkannt werden, ob ein Programm einen Chunk verändert hat, indem der neue und alte CRC-Wert verglichen wird. Hat sich der Wert geändert, so wurde auch der Chunk verändert.
Der Test bezieht sich auf den Chunk-Typ und die Daten, jedoch nicht auf die Chunk-Länge. Dies ist allerdings keine ,,Sicherheitslücke``, da bei falscher Länge ja auch nicht auf den richtigen CRC-Wert zugegriffen wird und somit der Fehler erkannt wird.