Automattic/node-canvas

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

Open

#2525 aperta il 16 lug 2025

Vedi su GitHub
 (2 commenti) (1 reazione) (0 assegnatari)JavaScript (1140 fork)batch import
Good first issue

Metriche repository

Star
 (9524 star)
Metriche merge PR
 (Merge medio 47m) (6 PR mergiate in 30 g)

Descrizione

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

Guida contributor