diff options
author | Matthew Somerville <matthew-github@dracos.co.uk> | 2016-09-05 17:32:32 +0100 |
---|---|---|
committer | Matthew Somerville <matthew-github@dracos.co.uk> | 2016-09-05 17:32:32 +0100 |
commit | be222799290cff46503a085cc28183695f4cbb3d (patch) | |
tree | 8651c67d7b00b4247a6eba6d14846e8d6758d026 /web/js/src/exif.js | |
parent | e701d77a73766541f41697a84bd034fe4a92a186 (diff) | |
parent | 7684ee064c717722003e920baed08d0230eb0d9e (diff) |
Merge branch 'photo-preview-fix'
Diffstat (limited to 'web/js/src/exif.js')
-rw-r--r-- | web/js/src/exif.js | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/web/js/src/exif.js b/web/js/src/exif.js index 3a2c7e1c3..f27be8ecb 100644 --- a/web/js/src/exif.js +++ b/web/js/src/exif.js @@ -55,7 +55,19 @@ return false; } - var base64 = img.src.replace(/^data\:([^\;]+)\;base64,/gmi, ''); + var data = img.src; + if (data.match(/^http/)) { + // We're loading this image from the server, presumably after a + // submission, so we have its URL, not yet its data. + var canvas = document.createElement("canvas"), + ctx = canvas.getContext("2d"); + canvas.width = img.width; + canvas.height = img.height; + ctx.drawImage(img, 0, 0); + data = canvas.toDataURL("image/jpeg"); + } + + var base64 = data.replace(/^data\:([^\;]+)\;base64,/gmi, ''); var binary = atob(base64); var len = binary.length; var file = new ArrayBuffer(len); |