W "Zrozumieć programowanie" Gynvaela Coldwinda jest ładnie opisana struktura plików PNG. Tyle, że książke trzeba kupić... :P
Możesz też skorzystać z jakichś bibliotek do obsługi plików graficznych - potrafią też eksportować do pliku PNG. Np. libpng, SOIL (korzysta z libpng z tego, co wiem), FreeImage pewnie też by umiał to zrobić. Wszystkei wymienione są napisane w C.