Bang rocks together to produce PNGs
db1c6997 — Blake Williams 9 months ago
Reference bumpy
b923083d — Blake Williams 9 months ago
b1b49e45 — Blake Williams 9 months ago
Add README, misc tweaks


browse  log 



You can also use your local clone with git send-email.

#PNG Banger

Hand rolled, artisinal, piece of junk PNG encoder.


  • 🎢 Hand rolled CRC32
  • 🎨 Artisinal Adler32
  • 🖼️ Piece of junk uncompressed zlib/DEFLATE framing
  • ⛳ Adequate, if sub-par, performance
  • 🛏️ Arbitrary limitations due to laziness
  • 🚮 No tests
  • 🍝 Not even useful as copypasta


I have a very handy piece of Javascript copypasta that encodes BMP files (most underrated image format ever, not joking, see https://git.sr.ht/~shabbyrobe/bumpy). It's surprisingly useful for adding image grinding functionalty to existing code and avoiding grappling with shithouse Javascript image libraries when they're not needed.

I wanted to see if a similar thing was viable for encoding basic, no-frills, don't-really-care-how-big-it-is PNG files. Looks like it probably isn't. Oh well.

#Expectation management

This is a tool I hack on for my own amusement in an ad-hoc fashion. No stability guarantees are made, the code is not guaranteed to work, and anything may be changed, renamed or removed at any time as I see fit.

If you wish to use any of this, I strongly recommend you copy-paste pieces as-needed (including tests and license/attribution) into your own project, or fork it for your own purposes.

Bug reports are welcome, feature requests discouraged, and code contributions will not be accepted.