Train Googles #3 optimize dataURI images

Adam Crockett 🌀 - Oct 8 '19 - - Dev Community

Well let's see, you have your canvas 👩‍🎨, you have encoded the output to base64 jpeg... Stop! Before you make a huge massive string which actually adds more weight as base64 maybe think about formats for a moment. .webp is Google's darling image format which promises to see large reductions to overall size with lossless quality, in practical terms it might make the image a tiny bit more blury but honestly I can't tell, even with my glasses on 👓.

https://developers.google.com/speed/webp

So because I googled it I know and so will you, you can set a canvases dataURI format to webp, effectively counteracting the bloat in theory. But by how much I'm not certain 👨‍🔬 having niether the will to do so. This is a theoretical post because I'm lazy today.

Okay you have a lovely big optimized string, what if you could stage it in such a way that this base64 image didn't appear in the Dom? What if it looked more like a URL?

Enter: URL.createObjectURL(blob);

https://stackoverflow.com/questions/16245767/creating-a-blob-from-a-base64-string-in-javascript

Boom, this works.

Okay but what if my browser doesn't support webp?

David Walsh to the rescue!

https://davidwalsh.name/detect-webp

So that's cool isn't it, I had less time to explain all this, this time was a fast train.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .