hash a file client-side
resize images on canvas
compress JPEG and PNG on canvas
JPEG <-> PNG <-> WebP on canvas