sizeof(pngHeader) gibt mir auch 16 statt 13?!
Guckt euch den Code mal an, ich weiß nicht woran das liegt. Für mich ist int+int+5*char = 13 Bytes und nicht 16...
Schau dir mal an was struct padding ist...
Ansonsten: Das
PNG Format ist Chunkbasiert, Header auslesen funktioniert vielleicht noch so aber wenn du wirklich das PNG laden willst wirst du mit den Chunks arbeiten müssen. PNG speichert Integer als Big-Endian, d.h. auf x86 wirst du die Reihenfolge der Bytes umdrehen müssen um die richtigen Werte zu bekommen. Abgesehen von all dem hoffe ich dass dir klar ist dass PNG ein komprimiertes Format ist, d.h. einfach mal die Bilddaten auslesen is nicht, du wirst die
entsprechenden Algorithmen entweder selber implementieren oder eine
Bibliothek verwenden müssen die das für dich tut. PNG zu laden ist nicht wirklich was was ich jemanden so zum Spaß empfehlen würde. Wenn du PNG support
brauchst verwend eine
Library dafür. Wenn du jetzt trotzdem weitermachen willst: Die komplette Spezifikation des Dateiformats findest du z.B.
hier.