Okay, these image libraries suck:
Imagemagick (because it doesn't optimize PNG's right)
GD (because it has no "downgrade to 16 greys" functionality)
So I rewrite the comic compiler again... and find that Slackware's NetPBM utilities date back to 1998. Okay, update that, and recheck the docs...
...and gut the recompiler. 90% of the pixel-pushing, including worrying about placement, NetPBM handles already. I could rewrite it in bash.
ImageMagic origonal version: 142 lines of code.
GD version (PNG output): 116 lines of code.
ImageMagic PNG output: 87 lines of code
NetPBM version: 69 lines of code
"does nothing" base (for comparison): 49 lines.
I wonder what the bash version would be like.