Habe mal meine
Unit angehängt, die ich lange Zeit verwendet habe, um PNGs zu laden und zu speichern (benötigt Graphics32). Die ursprüngliche Version des Quelltextes hatte ich mal irgendwo gefunden (weiß leider nicht mehr wo) und dann über die Jahre etwas erweitert und ein paar Bugs gefixt und Freepascal-Support hinzugefügt. Disclaimer: Ich habe immer alles nur soweit implementiert wie ich es selber brauchte. Deshalb keine Garantie auf Korrektheit oder Vollständigkeit.
Es scheint inzwischen aber auch neuere Versionen (Forks?) der ursprünglichen
Unit zu geben, die anscheinend mehr können als meine, z.B.
hier. Ich hoffe mal, die funktionieren auch korrekt. Ich weiß nur noch, dass die ursprüngliche Version bei manchen Dateien irgendein Problem mit dem Alphakanal hatte, was sich darin äußerte, dass die Ränder immer etwas "ausgefranst" waren, was sich beim mehrfachen Lesen und Speichern glaube ich auch noch verschlimmerte. Das habe ich dann irgendwann mal gefixt. Ich hoffe ich habe die richtige Version erwischt, die den Fix auch enthält.