It is very easy to crop and resize the images on the client side before you upload them. You can easily do it in Canvas. I did all processing on the client side, make a normal sized picture, and a thumbnail, then upload both of those two with a nice progress bar.
HTML5 really fixes very much of those problems :-)))