Automattic/node-canvas

`Image#src=` does not work with object URL (`onload` never called, cannot be drawn on 2d context)

Open

#2.525 aberto em 16 de jul. de 2025

Ver no GitHub
 (2 comments) (1 reaction) (0 assignees)JavaScript (1.140 forks)batch import
Good first issue

Métricas do repositório

Stars
 (9.524 stars)
Métricas de merge de PR
 (Mesclagem média 34d 18h) (2 fundiu PRs em 30d)

Description

import { Image } from 'canvas';
import { readFileSync } from 'fs';

const file = readFileSync('test.png');
const objectUrl = URL.createObjectURL(new Blob([file], { type: 'image/png' }));
const image = new Image();
image.onload = () => {
	URL.revokeObjectURL(objectUrl);
	console.log('in onload: complete =', image.complete); // never called
};
image.src = objectUrl;
console.log('immediately after setting src: complete =', image.complete); // true

If you try to draw an image with src being an object URL on a 2d context, you get Error: Image given has not completed loading.

Environment:

  • Node.js 22.14.0
  • canvas 3.1.2

Guia do colaborador