As for the quote of yourself you just quoted, I don't want you to write it, I just want to know how .png files work. I looked up some articles, and normally I'm good with reverse engineering too. There will be no need for you to write any java. I told you how the class would work and the data structure. If there is anything that needs to be changed with the class, just tell me.

Sorry, didn't mean to sound snippy. I honestly thought you would ask me to write it.

I haven't written my own renderer for png files before, but I do know that they are ridiculously complicated for a graphics file. Seriously, they are probably the most confusing graphics file format on the planet. They are separated out into little blocks of data. Each block (I believe they are called chunks actually) is compressed. Each block has a 4 char header which tells you what it's supposed to be doing. There is a fair number of them too (like 6 - 12, can't remember off the top of my head).

I asked if you were using J# because I do know that the .Net runtime has built in functions that can accept PNG files and spit out the pixel data.

Personally, If it were me, I'd just poke around for a library or something could load it.