Al principio, quiero mencionar que estoy preguntando sobre JS en el navegador, no sobre Node.js.
Leí el archivo (imagen) de la entrada del archivo ( <input type="file" /> ) y necesito dibujarlo en el lienzo y realizar algunas operaciones de bajo nivel en él. No hay problema y todo funciona bien si la imagen ya está en la memoria cuando ejecuto una operación, pero si la estoy leyendo como escribí antes (desde el fs del usuario a través de la entrada), no sé cuándo ejecutar la operación. Si lo inicio inmediatamente, el framebuffer está incompleto*.
Debido a otras partes del sistema, no leo la imagen poco a poco. En su lugar, creo una etiqueta img con el atributo src establecido en la URL creada a través de URL.createObjectURL con el objeto de archivo que se le pasa y luego dibujo esa imagen en el lienzo. Preferiría no cambiar eso porque va a ser un cambio bastante grande.
*Es un error de la biblioteca glfx.js si va a ayudar.