We don't have a CSP yet (it is report only, and there we already allow data:)

Ref:
- https://stackoverflow.com/questions/12168909/blob-from-dataurl
This commit is contained in:
Manav Rathi
2024-07-22 12:09:50 +05:30
parent 34e13caa77
commit 67df790d28

View File

@@ -370,29 +370,14 @@ async function convertImageToDataURL(blob: Blob) {
return dataURL;
}
function dataURIToBlob(dataURI: string) {
// convert base64 to raw binary data held in a string
// doesn't handle URLEncoded DataURIs - see SO answer #6850276 for code that does this
const byteString = atob(dataURI.split(",")[1]);
// separate out the mime component
const mimeString = dataURI.split(",")[0].split(":")[1].split(";")[0];
// write the bytes of the string to an ArrayBuffer
const ab = new ArrayBuffer(byteString.length);
// create a view into the buffer
const ia = new Uint8Array(ab);
// set the bytes of the buffer to the correct values
for (let i = 0; i < byteString.length; i++) {
ia[i] = byteString.charCodeAt(i);
}
// write the ArrayBuffer to a blob, and you're done
const blob = new Blob([ab], { type: mimeString });
return blob;
}
/**
* Convert a `data:` URI to a blob.
*
* Requires `connect-src data:` in the CSP (since it internally uses `fetch` to
* perform the conversion).
*/
const dataURIToBlob = (dataURI: string) =>
fetch(dataURI).then((res) => res.blob());
function convertToExifDateFormat(date: Date) {
return `${date.getFullYear()}:${