#OffscreenCanvas
if you need me i’ll be over here playing around with an offscreenCanvas(width*scaleFactor, height*scaleFactor).
June 16, 2025 at 12:13 AM
Blink: Intent to Ship: OffscreenCanvas getContextAttributes
Blink: Intent to Ship: OffscreenCanvas getContextAttributes
Blink: Intent to Ship: OffscreenCanvas getContextAttributes
groups.google.com
January 21, 2025 at 11:24 AM
Been working on optimizing Twodot.

The new setup is 5x faster and moves Godot to OffscreenCanvas to render in a separate thread; I also removed support for instanced geometry so shaders will compile faster.

#screenshotsaturday #godot #madewithgodot #godotengine #gamedev #twine
August 30, 2026 at 12:29 AM
Part of this is that I'm doing CV (in WASM) on video coming in from the content process, so getting the image chunk into the service worker is weird (video -> copy to offscreencanvas -> convertToBlob -> createURLobject -> sendMessage to service worker -> fetch/unpack/CV in service worker)
December 7, 2024 at 8:02 AM
My colleague Stephen Chenney has published a nice post about his work on adding good localization capabilities for canvas/OffscreenCanvas - interesting gap I hadn't thought of before. Thanks to Bloomberg Tech for funding the work!

blogs.igalia.com/schenney/can...
Canvas Localization Support
The new lang attribute for HTML canvas.
blogs.igalia.com
March 7, 2025 at 3:48 PM
feat: OffscreenCanvas by crowlKats · Pull Request #29357 · denoland/deno
Progresses #5701 Closes #31381
github.com
May 2, 2026 at 12:02 AM
うーん、canvasがOffscreenCanvasとして転送済みかどうかチェックしたいけど、難しそうね。
August 11, 2024 at 7:45 AM
It's amazing seeing how far WASM has come. WASM + OffScreenCanvas in the browser opens up some incredibly performant options for cross platform apps.

#golang #wasm #gis
November 29, 2025 at 3:17 AM
Pretty happy with my latest commit. Arcanetable’s image loading was stuttery on load—now? 🚀

✅ WebWorker + OffscreenCanvas for loading/resizing
✅ Caches promises to avoid duplicate work
✅ Staggered texture loading

No jank. Just vibes. ✨

#indiedev #buildinpublic #mtg #tcg #perf

before and after
December 18, 2024 at 12:12 AM
It's pretty easy to use OffscreenCanvas to prerender a bunch of frames then render them with <canvas> at a later point (i.e. offline rendering).
January 15, 2025 at 1:05 AM
#TIL To get LittleJS to work on KaiOS 3, LittleJS doesn't use the "offscreen" part of OffscreenCanvas, so a regular canvas works as a drop-in replacement. This polyfill (follow the link) just returns a regular element instead. #gamedev #littlejs

https://markandrade.com</canvas>
December 5, 2025 at 9:33 PM
Trying to expose the canvas from Fragment to another display:

PresentationAPI + WebRTC and MediaStream
➡️ Poor quality

PresentationAPI + Blob
➡️ Missing frames

PresentationAPI + DataURL
➡️ Poor performances

OffscreenCanvas can't be transferred through PresentationConnection.

Any ideas?
May 6, 2025 at 9:54 AM
So you can decode an image from a Blob into an ImageBitmap, but you can't access the pixels from ImageBitmap. Instead you need to construct an OffscreenCanvas, draw it to the canvas, and then read the pixels back from the canvas into ImageData???

This shit is stupid I stg im gonna scream
September 9, 2025 at 1:27 AM
To maintain smooth particle animations during GitHub Spark's loading screen, we render them in a web worker using OffscreenCanvas while code generation runs on the main thread
November 2, 2024 at 6:42 PM
I should also note: my solutions are not efficient at all. There is lots of room for improvement (eg. consolidating paths, OffscreenCanvas, throttling events). But yeah I was trying to come up with the worst-case baseline, so that it can only get better from these numbers.
January 2, 2025 at 11:38 PM
Offline rendering w/ OffscreenCanvas
...
codepen.io
January 15, 2025 at 12:43 AM
but also... canvas uses premultiplied alpha, so using it to encode transparent images will result in data loss (and maybe filesize increase due to rounding) no matter what you do.

(i thought they intended to fix this, maybe with OffscreenCanvas, but seems like they never did?)
May 18, 2026 at 10:45 PM
@jakearchibald.com

Quick technical question!

Do you know why canvas.toDataUrl() is like 10x faster than canvas.toBlob() and then createObjectURL(blob)?

Could this be a bug in Chrome?

Tried with OffscreenCanvas too and seeing similar results.
November 9, 2024 at 3:19 PM
I created a @codesandbox.io demo that can also serve as a Vite + @vuejs.org starter template. I'm learning how to use Web Workers, and the demo uses Vue.js with the Vite Comlink plugin to handle them.

Next, I'll work on an OffscreenCanvas demo. Check it out here: codesandbox.io/p/devbox/vit...
codesandbox.io
December 17, 2024 at 9:10 PM
OffscreenCanvas is a hidden gem of web technology! I show several examples to show how to use offscreen canvas: like converting canvas data to blobs, image bitmaps, offscreen rendering, and transferring canvas context.

Read more in my recent blog!

www.gremlich.me/software-eng...
OffscreenCanvas: Rendering Flexibility for the Developer
Looking into documentation, I find a few aspects about OffscreenCanvas to use when processing graphics.
www.gremlich.me
April 4, 2025 at 4:41 PM
Introducing Spac2 Convert Image: Ultra-Fast Multi-Format In-Browser Batch Converter

Convert Apple HEIC, Adobe PSD, TIFF, AVIF, PNG, JPG, and WebP instantly with zero server uploads, multi-threaded Web Workers, OffscreenCanvas acceleration, and instant ZIP downloads.

spac2.com/app/convert-...
Introducing Spac2 Convert Image: Complete Guide, Features & In-Browser Multi-Format Engine
High-speed client-side image converter supporting HEIC, PSD, TIFF, AVIF, PNG, JPG, and WebP with zero server uploads and instant ZIP downloads.
spac2.com
September 20, 2026 at 1:50 PM
[NEW] Komprs is live → Batch image compression in the browser via OffscreenCanvas + Web Worker. Open DevTools, drop a folder, watch zero requests fire. Built it because the security review for uploading client photography was a worse use of an afternoon than writing a compressor.
May 27, 2026 at 2:06 PM
"One way to use the OffscreenCanvas API is to use a rendering context that has been obtained from an OffscreenCanvas object to generate new frames. Once a new frame has finished rendering in this context, the transferToImageBitmap() method can be called to save the most recent rendered image."
January 14, 2025 at 7:48 PM
I'm learning how to use Three.js in a freelance project. So many things I didn't know what to do! For example, I didn't know that there was such a thing as OffScreenCanvas! I'm using it to process a three dimensional model in a WebWorker since a web worker doesn't support a regular canvas.
March 29, 2025 at 1:34 AM