Actually, the image rendering parts are far less difficult than the codec parts. You need the whole system in an operation graph in order to do the right thing to every image. Also, GIMP's scaling is still completely wrong - something I'm ashamed I haven't fixed yet.