From e97fe00c89633e911182c105801b7411f2820030 Mon Sep 17 00:00:00 2001 From: Balearica Date: Wed, 10 Aug 2022 23:18:17 -0700 Subject: [PATCH] Removed exif auto-rotation for browser per #604 --- src/worker/browser/loadImage.js | 36 +++++++-------------------------- 1 file changed, 7 insertions(+), 29 deletions(-) diff --git a/src/worker/browser/loadImage.js b/src/worker/browser/loadImage.js index 3102967d8..2223d4f76 100644 --- a/src/worker/browser/loadImage.js +++ b/src/worker/browser/loadImage.js @@ -1,5 +1,4 @@ const resolveURL = require('resolve-url'); -const blueimpLoadImage = require('blueimp-load-image'); /** * readFromBlobOrFile @@ -21,19 +20,6 @@ const readFromBlobOrFile = (blob) => ( }) ); -const fixOrientationFromUrlOrBlobOrFile = (blob) => ( - new Promise((resolve) => { - blueimpLoadImage( - blob, - (img) => img.toBlob(resolve), - { - orientation: true, - canvas: true, - }, - ); - }) -); - /** * loadImage * @@ -48,18 +34,14 @@ const loadImage = async (image) => { } if (typeof image === 'string') { - if (image.endsWith('.pbm')) { + // Base64 Image + if (/data:image\/([a-zA-Z]*);base64,([^"]*)/.test(image)) { + data = atob(image.split(',')[1]) + .split('') + .map((c) => c.charCodeAt(0)); + } else { const resp = await fetch(resolveURL(image)); data = await resp.arrayBuffer(); - } else { - let img = image; - // If not Base64 Image - if (!/data:image\/([a-zA-Z]*);base64,([^"]*)/.test(image)) { - img = resolveURL(image); - } - data = await readFromBlobOrFile( - await fixOrientationFromUrlOrBlobOrFile(img), - ); } } else if (image instanceof HTMLElement) { if (image.tagName === 'IMG') { @@ -77,11 +59,7 @@ const loadImage = async (image) => { }); } } else if (image instanceof File || image instanceof Blob) { - let img = image; - if (!image.name.endsWith('.pbm')) { - img = await fixOrientationFromUrlOrBlobOrFile(img); - } - data = await readFromBlobOrFile(img); + data = await readFromBlobOrFile(image); } return new Uint8Array(data);