After further investigation I think getting libpng support via a binding will be the most cross-platform way to handle PNG file. It would be great to have a pure Pascal implementation, but the work involved in decoupling GDI specifics from the Gustavo Daud's work, make it prohibitive due to my limited time.