NOTE: this demo currently only works in chromium-based browsers, where Offscreen Canvas is supported.
Notice that decoding the image on the main thread pauses the circle animation until the image is ready to be drawn, where as decoding it in a webworker does not have this pause (or at least not as drastic a pause). You may want to reload the page, as browsers are smart enough to not have to re-decode the image on subsequent requests.