Skip to content

Commit e0208d8

Browse files
committed
fix: Adding willReadFrequently makeBufferFromCanvasImageData method to improve performance
1 parent d4c22f7 commit e0208d8

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

src/common/HTMLCanvasElementLuminanceSource.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,14 @@ export class HTMLCanvasElementLuminanceSource extends LuminanceSource {
1010
private static DEGREE_TO_RADIANS = Math.PI / 180;
1111

1212
private static makeBufferFromCanvasImageData(canvas: HTMLCanvasElement): Uint8ClampedArray {
13-
const canvasCtx = canvas.getContext('2d');
13+
let canvasCtx;
14+
15+
try {
16+
canvasCtx = canvas.getContext('2d', { willReadFrequently: true });
17+
} catch (e) {
18+
canvasCtx = canvas.getContext('2d');
19+
}
20+
1421
if (!canvasCtx) { throw new Error('Couldn\'t get canvas context.'); }
1522
const imageData = canvasCtx.getImageData(0, 0, canvas.width, canvas.height);
1623
return HTMLCanvasElementLuminanceSource.toGrayscaleBuffer(imageData.data, canvas.width, canvas.height);

0 commit comments

Comments
 (0)