18 lines
473 B
TypeScript
18 lines
473 B
TypeScript
|
// Copyright 2021 Signal Messenger, LLC
|
||
|
// SPDX-License-Identifier: AGPL-3.0-only
|
||
|
|
||
|
export async function canvasToArrayBuffer(
|
||
|
canvas: HTMLCanvasElement
|
||
|
): Promise<ArrayBuffer> {
|
||
|
const blob: Blob = await new Promise<Blob>((resolve, reject) => {
|
||
|
canvas.toBlob(result => {
|
||
|
if (result) {
|
||
|
resolve(result);
|
||
|
} else {
|
||
|
reject(new Error("Couldn't convert the canvas to a Blob"));
|
||
|
}
|
||
|
}, 'image/webp');
|
||
|
});
|
||
|
return blob.arrayBuffer();
|
||
|
}
|