I was really hoping this would implement some complex algorithm or at least be an interesting implementation, however, it seems to just divide the image height/width by the aspect ratio:
As I understand it, this library draws the image into a Canvas to then re-compress the Canvas' via the Browser's native `toDataURL('image/jpeg', quality);`. You can optionally specify a width/height to downscale the image.
Imho the readme needs to state what the library actually does. E.g.
"This takes a user image from a file input, optionally resizes it, and returns a JPEG, PNG or WebP as a Blob, ready to upload."
I guess your original was more optimised than mine.
A tool like this should definitely check to make sure it has actually reduced the file size and, if not, just return the original with a note that it couldn't make any gains.
The result is dependent on your Browser. This library uses the Browser's native `ctx.toDataURL('image/jpeg', quality)` method to re-encode the image. The actual compression algorithm is not implemented in JavaScript.
https://github.com/xkeshi/image-compressor/blob/master/src/i...