A client side, canvas-based image cropping and upload tool