summaryrefslogtreecommitdiff
path: root/old/faiss/static/js/dataUriToBlob.js
diff options
context:
space:
mode:
authoradamhrv <adam@ahprojects.com>2018-12-16 01:03:14 +0100
committeradamhrv <adam@ahprojects.com>2018-12-16 01:03:14 +0100
commit10f467b64e3be528ac246d5cf664d675aca3e7f3 (patch)
tree02face1862f185796c3ddd08a274940626e31ff9 /old/faiss/static/js/dataUriToBlob.js
parenta52dc6f8edc4e5d00e7c05e34c6c6fe6252ec2bd (diff)
parentf91c6d8e870bd3b2c69a130e4b1ed8f6be250b92 (diff)
Merge branch 'master' of github.com:adamhrv/megapixels_dev
Diffstat (limited to 'old/faiss/static/js/dataUriToBlob.js')
-rw-r--r--old/faiss/static/js/dataUriToBlob.js58
1 files changed, 58 insertions, 0 deletions
diff --git a/old/faiss/static/js/dataUriToBlob.js b/old/faiss/static/js/dataUriToBlob.js
new file mode 100644
index 00000000..80189b8d
--- /dev/null
+++ b/old/faiss/static/js/dataUriToBlob.js
@@ -0,0 +1,58 @@
+var dataUriToUint8Array = function(uri){
+ var data = uri.split(',')[1];
+ var bytes = atob(data);
+ var buf = new ArrayBuffer(bytes.length);
+ var u8 = new Uint8Array(buf);
+ for (var i = 0; i < bytes.length; i++) {
+ u8[i] = bytes.charCodeAt(i);
+ }
+ return u8
+}
+
+window.dataUriToBlob = (function(){
+/**
+ * Blob constructor.
+ */
+
+var Blob = window.Blob;
+
+/**
+ * ArrayBufferView support.
+ */
+
+var hasArrayBufferView = new Blob([new Uint8Array(100)]).size == 100;
+
+/**
+ * Return a `Blob` for the given data `uri`.
+ *
+ * @param {String} uri
+ * @return {Blob}
+ * @api public
+ */
+
+var dataUriToBlob = function(uri){
+ var data = uri.split(',')[1];
+ var bytes = atob(data);
+ var buf = new ArrayBuffer(bytes.length);
+ var arr = new Uint8Array(buf);
+ for (var i = 0; i < bytes.length; i++) {
+ arr[i] = bytes.charCodeAt(i);
+ }
+
+ if (!hasArrayBufferView) arr = buf;
+ var blob = new Blob([arr], { type: mime(uri) });
+ blob.slice = blob.slice || blob.webkitSlice;
+ return blob;
+};
+
+/**
+ * Return data uri mime type.
+ */
+
+function mime(uri) {
+ return uri.split(';')[0].slice(5);
+}
+
+return dataUriToBlob;
+
+})()