
JavaScript Image Compress Using HTML5 Canvas and File API Before Upload - huzoorbux
https://www.phplift.net/javascript-image-compress-using-html5-canvas-file-api-before-upload/
======
Piskvorrr
Database hugged to death :(

Oh wait. It's a redirect to StackOverflow?!

[https://stackoverflow.com/questions/23945494/use-html5-to-
re...](https://stackoverflow.com/questions/23945494/use-html5-to-resize-an-
image-before-upload)

~~~
throwaway_bad
Squoosh is a much better demo of how to do in-browser compression (using
optipng, mozjpeg, etc):
[https://github.com/GoogleChromeLabs/squoosh/](https://github.com/GoogleChromeLabs/squoosh/)

There are far more knobs you can tune whereas the native browser conversion
only has mimetype and quality (via toBlob: [https://developer.mozilla.org/en-
US/docs/Web/API/HTMLCanvasE...](https://developer.mozilla.org/en-
US/docs/Web/API/HTMLCanvasElement/toBlob))

~~~
tracker1
I really like Squoosh... I'm not sure if they have yet, but there was at one
time discussion of separating the builds for the underlying wasm built
libraries from squoosh whole, which would make it more usable for separate
projects.

~~~
throwaway_bad
Yea I wished it were easier to use out of the box too. The code is fortunately
very well organized so you can just copy the pieces you need:
[https://github.com/GoogleChromeLabs/squoosh/tree/master/src/...](https://github.com/GoogleChromeLabs/squoosh/tree/master/src/codecs)

It also does make sense for you to pick and choose only the compression codecs
you will need. Otherwise the cost of making every client download huge and
unused wasm libraries might outweigh any bandwidth savings from compression.

------
accosine
This can be done in like five lines of Javascript. Why does this even rank on
HN?

~~~
untog
What's the minimum number of lines before code becomes notable enough for HN?

~~~
ghostbrainalpha
7 can be acceptable in some cases, but just to be safe I suggest 8 lines.

// 8 Lines not including sarcastic comments obviously.

~~~
raxor53
These are the new standards, please send out a memo.

------
devwastaken
browsers need to have an API to access the underlying libraries. No reason I
shouldn't be able to use turbojpeg or libpng clientside. Can't even do it in
WebAssembly, because simd was an afterthought.

------
mcraiha
There should be a law that says: "one shall not use var in JavaScript code
examples"

~~~
yoz-y
Don't linters complain about it nowadays? Maybe devtools should start doing it
too.

