Mercurial > hg > dml-open-cliopatria
diff cpack/dml/web/js/smartimg.js @ 0:718306e29690 tip
commiting public release
author | Daniel Wolff |
---|---|
date | Tue, 09 Feb 2016 21:05:06 +0100 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cpack/dml/web/js/smartimg.js Tue Feb 09 21:05:06 2016 +0100 @@ -0,0 +1,61 @@ +/* Part of DML (Digital Music Laboratory) + Copyright 2014-2015 Samer Abdallah, University College London + Distributed under GPL v3 +*/ +function load_img(id,url) +{ + var xhr = new XMLHttpRequest(); + xhr.open('GET',url,true); + xhr.responseType = 'arraybuffer'; + xhr.onload = function(e) { + var type = xhr.getResponseHeader('Content-Type') + console.log(type) + + var arr = new Uint8Array(this.response); + var raw = ''; + var i,j,subArray,chunk = 5000; + for (i=0,j=arr.length; i<j; i+=chunk) { + subArray = arr.subarray(i,i+chunk); + raw += String.fromCharCode.apply(null, subArray); + } + var dataURL="data:"+type+";base64,"+btoa(raw); + document.getElementById(id).src = dataURL; + }; + xhr.send(); +} + +function load_img2(id,url) +{ + var xhr = new XMLHttpRequest(); + xhr.responseType = 'arraybuffer'; + xhr.onload = function() { + var type = xhr.getResponseHeader('Content-Type') + var el = document.getElementById(id); + if (type.substring(0,6)=="image/") { + var blb = new Blob([xhr.response], {type: type}); + var url = (window.URL || window.webkitURL).createObjectURL(blb); + el.src = url; + } else { + var styles = window.getComputedStyle(el); + var fr = document.createElement('iframe'); + var st = fr.style; + st.width=styles.getPropertyValue('width'); + st.height=styles.getPropertyValue('height'); + st.display='inline'; + st['vertical-align']='middle'; + st['background-color']='#ffe0e0'; + + el.parentNode.replaceChild(fr, el); + var arr = new Uint8Array(this.response); + var raw = String.fromCharCode.apply(null, arr); + var doc = fr.contentWindow.document; + doc.open(); + doc.write(raw); + doc.close(); + doc.body.style['font-size']='80%' + } + } + xhr.open('GET',url); + xhr.send(); +} +