A JavaScript web worker for encoding PNGs. Send it the raw pixel data from a Canvas element (perhaps via [transferable objects] (http://updates.html5rocks.com/2011/12/Transferable-Objects-Lightning-Fast)), and it'll send back the raw PNG data.
deflate.js
is from Zip.JS.