This is exactly what I was looking for. I like to write ray tracers, and PPM is a brain dead way to dump an image into disk. One bug that I noticed though is that it seems like the red and blue channels are swapped when loading (but not when saving). I tested this with a third party PPM viewer to make sure (just in case there was a bug in my code). Means that if I want to load my images into Paint.NET I actually have to swap my red and blue channels as I am saving so when I load it everything will appear as expected.