Option to send photos as high quality

This commit is contained in:
Josh Perez 2021-06-25 12:08:16 -04:00 committed by GitHub
parent 6c56d5a5f1
commit 01eabf9ec6
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
44 changed files with 1263 additions and 363 deletions

29
ts/util/canvasToBlob.ts Normal file
View file

@ -0,0 +1,29 @@
// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { IMAGE_JPEG } from '../types/MIME';
/**
* Similar to [the built-in `toBlob` method][0], but returns a Promise.
*
* [0]: https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/toBlob
*/
export async function canvasToBlob(
canvas: HTMLCanvasElement,
mimeType = IMAGE_JPEG,
quality?: number
): Promise<Blob> {
return new Promise((resolve, reject) =>
canvas.toBlob(
result => {
if (result) {
resolve(result);
} else {
reject(new Error("Couldn't convert the canvas to a Blob"));
}
},
mimeType,
quality
)
);
}