I've already learned how to generate BMP images based on the BMP files structure (here and here).
Now I'm looking for the PNG file structure but I haven't found any good explanations.
Do you know where I can find this explanation with schemes as well?
The complete specification is available here: http://www.libpng.org/pub/png/spec/1.2/png-1.2.pdf
Note that the PNG format is much more complex than BMP, since it allows compression, etc.