Thanks for testing it out on Linux Cragwolf. Yes the idea is that it should be Delphi/Kylix friendly as well.

Ok I have removed png_sig_bytes and png_set_itxt and IFDEFed png_get_sCAL_s and png_set_sCAL_s.

Can you please clarify why I need zlib and where is it picking up the reference to "pow" as that does not exist anywhere in the source code?
I'm trying to avoid adding {$LINKLIB m} and the unit zlib, unless there is a really good reason to do so. Under Linux wouldn't Zlib be another dynamically linked shared object or are you statically linking it by adding zlib to the uses clause?