Breaking API Change: Now requiring callback to be passed to snap() -- no longer returns data URI in same thread.
User callback is now passed data URI, as well as canvas and context objects.
Rebuilt all demos using new API.
Added new crop feature.
Added optional user canvas feature (thanks user bitopolis for this idea).
Updated README.